首页 > 解决方案 > R 根据行值对双向表中的列进行排序

问题描述

我正在尝试根据行值对我创建的双向表中的列进行排序。我已将双向表保存为表,因此将其放入数据框中(我正在使用 R)。下面的代码应该基于内置的 Iris 数据创建一个双向表。

在我给出的示例中,请参见附图,如果您根据第一行对列进行排序,则列顺序应为 setosa、virginica、Versicolor。第二行将排序列virginica、Versicolor、Setosa。第三行将列排序为 Versicolor、virginica、setosa。到目前为止,我唯一的解决方案是WinEUref19[,order(WinEUref19[nrow(WinEUref19),])],但这只能做最后一行,是否可以按第二行或第一行对列进行排序?

可复制代码:

Data <- iris
Data $ var2 <- iris $ Species
Data $ var2 <- sample(Data $ var2)
Df <-table(Data $ var2, iris $ Species)
rownames(Df) <- c("Row one","Row two", "Row three")
Df

            setosa versicolor virginica
  Row one       14         19        17
  Row two       22         15        13
  Row three     14         16        20

标签: rdataframe

解决方案


你基本上已经有了答案。您可以像这样按第一行排序表格:

Df[,order(Df[1,])]

像这样的第二行:

Df[,order(Df[2,])]

等等。


推荐阅读