【发布时间】:2017-08-04 05:39:20
【问题描述】:
您好,我有一个列表 re,其中的元素包含具有 colnames 的数据帧:c(values, diff, Sample1, Sample2, Sample3,...) 直到 Sample 100-1000。
“values”列没有唯一值,diff 列表示与另一个向量(不包含在 data.frames 中)的差异。
我得到的前两列很典型:
values<- c(1,1,2,2,3,4,4,4)
diff <- c(1,2,1,2,1,2,2,1)
现在我想(对于列表中的每个数据帧)减少数据集,只有一个唯一的 values 元素在 diff 中具有最小值。所以在大写中:
值=c(1,2,3,4)
差异
我试过 plyr:
for (k in 1:length(re)) {
ret[[k]] <- ddply(re[[k]], .(valueData), summarise, re[[k]][which.min(diff),]) }
给出错误:
Error in vector(type, length) :
vector: cannot make a vector of mode 'closure'.
因为我在 data.frames 中不仅有“值”和“差异”列,而且还有更多不同大小的列,所以我不能只命名每一列:
ret[[k]] <- ddply(re[[k]], .(valueData), summarise, diff=min(diff),
Sample1=Sample1[which.min(diff)],Sample2=Sample2[which.min(diff)],Samplex...)
那么我该如何解决这个问题,或者尽管 plyr 还有其他选择?
有什么想法吗? 非常感谢!!!
【问题讨论】: