按其列中非零元素的数量对data.frame进行排序

时间:2019-08-15 15:36:55

标签: r

df <- as.data.frame(matrix(sample(0:2, 10 * 10, replace = TRUE), 10, 10)) 

我想对df进行排序,使非零元素数量最多的列出现在df[,1]中。

奖金: 在具有相等的非零元素的列组中,按colsum排序将是很好的(df[,order(colSums(df),decreasing=T)])。

1 个答案:

答案 0 :(得分:3)

只需通过创建逻辑矩阵(df != 0)来更改代码,然后执行colSums

df[,order(colSums(df!= 0),decreasing=TRUE)]