所以,我有一个数据框(比方说df1),其列名对应于单独变量(var1)的单元格(观察)中的字符,但顺序不同。 df1还有一些额外的列与var1中的任何内容都不对应。我想创建另一个数据框(df2),其列与var1 IN THE COE ORDER中的名称匹配,并且只包含这些列。
我认为R循环是正确的方法,但我对R很新,我不确定如何继续。
总结一下,df1
可能看起来像这样(但是更大):
和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
再一次,我意识到在这种规模下,我可以随意取出矢量并在数据帧中将它们彼此相邻堆叠。但真正的数据要大得多,所以我需要自动化它。任何建议都非常感谢
答案 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))