0
我试图做一个循环,将几个字段(字段1,字段2,字段3)R回路通过对数据子集的唯一复合键
field1 field2 field3 field4 field5 field6 field7 field8
1 text text1 segment1 31-Jan-13 2.70 0.21 1.44 1.29
2 text text1 segment1 01-May-13 0.70 2.90 0.76 0.38
56 text text3 segment2 01-May-14 -1.50 -1.97 -1.79 -3.51
当我这样做,通过使用作为一个重要选择数据一列工作原理:
for (j in 1:length(unique(InputData[,3]))) {
InputDataSubset <- InputData[InputData[,3] == unique(InputData[,3])[j],]
print(unique(InputData[,3])[j])
print(InputDataSubset)
}
如果我尝试这样做,由几列:
for (j in 1:length(unique(InputData[,1:3]))) {
InputDataSubset <- InputData[InputData[,1:3] == unique(InputData[,1:3])[j,],]
print(unique(InputData[,3])[j])
print(InputDataSubset)
}
我收到错误消息:
Error in Ops.data.frame(InputData[, 1:3], unique(InputData[, 1:3])[j, :
‘==’ only defined for equally-sized data frames
这样的问题怎么解决?提前致谢。
'分裂(DF,DF [,C( “FIELD1”, “FIELD2”)])'。 – Frank
也可以使用'dplyr :: group_by'。 – r2evans
或者:'by(DF,DF [,c(“field1”,“field2”)],FUN = function(df)df)' – Parfait