R:创建一个数据框,其列名对应于变量中的行名

时间:2015-01-13 19:26:14

标签: r

所以,我有一个数据框(比方说df1),其列名对应于单独变量(var1)的单元格(观察)中的字符,但顺序不同。 df1还有一些额外的列与var1中的任何内容都不对应。我想创建另一个数据框(df2),其列与var1 IN THE COE ORDER中的名称匹配,并且只包含这些列。

我认为R循环是正确的方法,但我对R很新,我不确定如何继续。

总结一下,df1可能看起来像这样(但是更大):

enter image description here 和var1看起来像这样:

 V1  
1 frog  
2 sample  
3 mouse

我希望输出(df2)看起来像这样:

         frog          sample              mouse  
1   1.7580004       ARHGEF10L         0.79790041  
2  -2.3078847           HIF3A        -1.13418473  
3  -0.4556149           RNF17        -0.45561492  
4  -0.1363775           RNF10         0.03217751  
5  -1.2339385           RNF11        -0.31903849  
6  -0.7853651           RNF13        -0.19546513  

再一次,我意识到在这种规模下,我可以随意取出矢量并在数据帧中将它们彼此相邻堆叠。但真正的数据要大得多,所以我需要自动化它。任何建议都非常感谢

1 个答案:

答案 0 :(得分:5)

您可以使用" V1"列" var1"到"子集"数据集" df1"

df2 <-  df1[var1$V1]

数据

var1 <- structure(list(V1 = c("frog", "sample", "mouse")), 
.Names = "V1", class = "data.frame", row.names = c("1", "2", "3"))

set.seed(25)
df1 <- data.frame(sample=c('ARHGEF10L', 'H1F3A', 'RNF17', 'RNF10',
 'RNF11', 'RNF13'), mouse=rnorm(6), human=rnorm(6), frog=rnorm(6),
 squirrel=rnorm(6))