我是R的新手并坚持使用以下数据。要么我用错误的术语搜索,要么这个问题没有上升(可能是因为简单?)。
我有一个包含因子和数字列的数据框:
> head(PAMdata1)
salt cultivar Ratiod13 StdErr
1 50 1 1.0760163 0.02915785
2 100 1 0.9814083 0.04914316
3 50 2 0.9617199 0.06571578
4 100 2 0.7878740 0.10270647
5 50 4 0.9551830 0.04134652
6 100 4 0.8429793 0.10993336
> str(PAMdata1)
'data.frame': 36 obs. of 4 variables:
$ salt : Factor w/ 2 levels "50","100": 1 2 1 2 1 2 1 2 1 2 ...
$ cultivar: Factor w/ 18 levels "27","26","21",..: 7 7 15 15 13 13 11 11 9 9 ...
$ Ratiod13: num 1.076 0.981 0.962 0.788 0.955 ...
$ StdErr : num 0.0292 0.0491 0.0657 0.1027 0.0413 ...
“品种”栏包含因子,其等级使用另一个数据框排序:
PAMdata1$cultivar <- factor(PAMdata1$cultivar, levels = unique(as.character(my_other_df$cultivar)))
levels(PAMdata1$cultivar)
[1] "27" "26" "21" "52" "14" "25" "1" "23" "7" "8" "5" "28" "4" "22" "2"
[16] "53" "51" "50"
我想要的是PAMdata1 $ Ratiod13按品种水平排序。如何将水平矢量转换为每个级别位于?
的行号矢量我将不胜感激。
非常感谢
答案 0 :(得分:1)
与办公室伙伴交谈并看到你的评论我看到我在sort()和order()之间的混淆
PAMdata1[order(PAMdata1$cultivar),]
甚至
PAMdata1[with(PAMdata1,order(cultivar)),]
可以胜任。
非常感谢你的帮助。
答案 1 :(得分:0)
data.table选项是setkey品种:
setkey(PAMdata1,cultivar)