2013-12-12 116 views
2

我是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。如何将水平矢量转换为每个级别所在行号的矢量?

我将不胜感激任何帮助。

非常感谢

+1

呢? 'PAMdata1 [order(PAMdata1 $ cultivar),]' –

+1

如果您解决了您的问题,请将其作为答案发布,然后接受它,而不是将其编辑到您的问题中。确切地说, – Thomas

+0

。我不知道这些因素是按照他们的等级顺序排序的。尴尬...... – sargas

回答

0

交谈办公室队友,看到您的意见,我看到排序之间)和序)我的困惑((

PAMdata1[order(PAMdata1$cultivar),] 

甚至

PAMdata1[with(PAMdata1,order(cultivar)),] 

会做工作。

非常感谢您的帮助。

0

一个data.table选择是setkey的品种:

setkey(PAMdata1,cultivar) 
相关问题