首先,你好!这是我在这里的第一篇文章,我不得不承认我有点紧张
我有一个data.frame,其中每个元素都是一式三份并且有自己的价值,这是一个例子
test <-data.frame (id = c("a", "a", "a" , "b", "b", "b"),
val = c(1,100,300,1,2,3))
我需要计算每个副本集中的值之间的差异,如果第一个 val 与第二个或第二个与第三个之间的差异小于数字,则将其删除。
我尝试创建自己的小函数并将其与 ddply 一起使用,但到目前为止我没有成功
这是我想要做的:
f<-function(x) if(x[1,2]-x[2,2] < 60 || x[2,2]- x[3,2] < 60) NULL else (x)
ddply(test, .(id), f)
在这个例子中,我最后想要的是:
id val
a 1
a 100
a 300
"b" 被删除是因为 (1-2 < 60)
相反,我收到各种错误消息或奇怪的 data.frames,看起来很不对劲
我希望我足够清楚。
提前致谢
国会议员
编辑:差异是绝对值