0
私は以下のようにdata.frame data
を持っています。 fac2
に基づいてfac1
のレベルの順序を変更する方法別の因子に基づく因子レベルの並べ替え
data <- structure(list(fac1 = structure(c(6L, 16L, 4L, 14L, 1L, 7L, 3L,
2L, 15L, 10L, 11L, 9L, 8L, 5L, 13L, 12L), .Label = c("dd85",
"ee01", "ee12", "ee78", "gs85", "jj45", "jj63", "qe89", "qq74",
"tt23", "tt78", "vd41", "vd51", "ww77", "yy25", "yy85"), class = "factor"),
fac2 = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 4L, 4L, 4L, 4L), .Label = c("md", "av", "zr", "kj"), class = "factor")), .Names = c("fac1",
"fac2"), row.names = c(NA, 16L), class = "data.frame")
levels(data$fac1)
levels(data$fac2)
data
fac1 fac2
1 jj45 md
2 yy85 md
3 ee78 md
4 ww77 md
5 dd85 av
6 jj63 av
7 ee12 av
8 ee01 av
9 yy25 zr
10 tt23 zr
11 tt78 zr
12 qq74 zr
13 qe89 kj
14 gs85 kj
15 vd51 kj
16 vd41 kj
levels(data$fac1)
[1] "dd85" "ee01" "ee12" "ee78" "gs85" "jj45" "jj63" "qe89" "qq74" "tt23" "tt78" "vd41" "vd51" "ww77" "yy25" "yy85"
levels(data$fac2)
[1] "md" "av" "zr" "kj"
?
私はこのに従ってfactor(data, levels=data[order(data$fac2),], ordered=TRUE)
を試しましたが、2つのレベルがあります。
factor(data, levels=data[order(data$fac2),], ordered=TRUE)
fac1 fac2
c(6, 16, 4, 14, 1, 7, 3, 2, 15, 10, 11, 9, 8, 5, 13, 12) c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4)
2 Levels: c(6, 16, 4, 14, 1, 7, 3, 2, 15, 10, 11, 9, 8, 5, 13, 12) < ...