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

Hen*_*ieu -2 r

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

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

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

在此输入图像描述 和var1看起来像这样:

 V1  
1 frog  
2 sample  
3 mouse
Run Code Online (Sandbox Code Playgroud)

我希望output(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  
Run Code Online (Sandbox Code Playgroud)

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

akr*_*run 5

您可以使用"var1"中的"V1"列来"子集"数据集"df1"

df2 <-  df1[var1$V1]
Run Code Online (Sandbox Code Playgroud)

数据

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))
Run Code Online (Sandbox Code Playgroud)

  • @HenriW我在哪里写了`df2 < - df1 [var1 $ V1]`中的所有列名?您显示`df2`输出包含三列,这些列是来自`var1`数据集的`V1`中的元素. (2认同)