虽然可能(我希望),一个简单的解决方案,我似乎无法达成一个。对于一系列配对列,我想计算每个偶数编号列(df2,df4,df6)中唯一值的数量,该列在左边的相应列中具有零(df1,df3,df5)。
df1 <- as.data.frame(matrix(sample(0:1000, 36*10, replace=TRUE), ncol=1))
df2 <- as.data.frame(rep(1:12, each=30))
df3 <- as.data.frame(matrix(sample(0:500, 36*10, replace=TRUE), ncol=1))
df4 <- as.data.frame(c(rep(5:12, each=30),rep(1:4, each=30)))
df5 <- as.data.frame(matrix(sample(0:200, 36*10, replace=TRUE), ncol=1))
df6 <- as.data.frame(c(rep(8:12, each=30),rep(1:7, each=30)))
Example <- cbind(df1,df2,df3,df4,df5,df6)
我可以通过此函数减少拥有零的行数,但我不确定这是否是必要的步骤。
Example <- as.data.frame(Example[which(apply(Example[-1], 1, function(x) min(x) <= 0)),])
举个例子,如果我有数据框......
df1 df2 df3 df4 df5 df6
1 1 9 1 0 1
0 2 5 2 0 2
...我希望输出为
df2 df4 df6
1 0 2
提前谢谢你。
答案 0 :(得分:1)
如果您的data.frame是NSUserDefaults
,您可以执行以下操作:
df
基本上,它不是搜索相邻的0值,而是计算奇数列中的0,但结果是相同的。
如果您确实希望列名与偶数列相对应,则可以执行以下操作:
colSums(df[, seq(ncol(df))%%2==1]==0)
#df1 df3 df5
# 1 0 2
数据强>
w_odd <- seq(ncol(df))%%2==1
setNames(colSums(df[, w_odd]==0), colnames(df)[!w_odd])
#df2 df4 df6
# 1 0 2