两个嵌套列中的r个因子级别

时间:2015-02-24 17:11:26

标签: r nested levels

我有两列嵌套级别的列。嵌套我的意思是第2列中的因子取决于第1列的值。我想按字母顺序排列第1列中的因子级别。我希望第2列中的因子级别按照第1列的字母顺序按字母顺序排列。

data<-as.data.frame(cbind(c("A","B","D","C","A","B","D","C","A","B","C","D"),
                      c("Alpha","Beta","Gamma","Delta","Zeta","Chi","Omega",
                                  "Delta","Alpha","Gamma","Beta","Zeta")))

data<-data[with(data, order(factor(levels(data$V1))), 
                                      factor(levels(data$V2))), ]

我尝试按上述顺序排列因子水平,但第二列在第一列之后没有排序;它只是按字母顺序排列。我知道我可以手动输入我想要的等级,但我追求的是不需要的等级。

谢谢。

2 个答案:

答案 0 :(得分:0)

喜欢以下内容?

library(dplyr)
arrange(data, V1, V2)
   V1    V2
1   A Alpha
2   A Alpha
3   A  Zeta
4   B  Beta
5   B   Chi
6   B Gamma
7   C  Beta
8   C Delta
9   C Delta
10  D Gamma
11  D Omega
12  D  Zeta

答案 1 :(得分:0)

data<-data[order(data$V1,data$V2), ]#应该工作

> data
   V1    V2
1   A Alpha
9   A Alpha
5   A  Zeta
2   B  Beta
6   B   Chi
10  B Gamma
11  C  Beta
4   C Delta
8   C Delta
3   D Gamma
7   D Omega
12  D  Zeta