如何 select 文本文件(在 R 中)中列出的 data.frame 中的所有变量?

How to select all variables in a data.frame that are listed in a text file (in R)?

我的编程问题是我在一个Ascii格式文件中有一个字符串列表,这些字符串是变量名,例如variables.txt,例如

A
B
C
D

应从 R 中的 data.frame 中选择与 variables.txt 中的名称匹配的那些变量。例如:

var = c("A", "B", "C", "D")
(dat=data.frame(A=1,B=2,C=3,D=4,E=5,F=6))
  A B C D E F
1 1 2 3 4 5 6

其次是

dat[,var]
  A B C D
1 1 2 3 4

所以问题可能归结为将 variables.txt 读入 var。如果我给:

var <- read.table("variables.txt")

结果又是一个data.frame,不能用于子设置。完成这项任务最有效的方法是什么?

编辑: 我发现

var <- as.vector(as.matrix(read.table("variables.txt")))

成功了。但也许还有更有效的方法。

您可以尝试这种方式,此处将 var 输入为 data.frame:您需要明确向量引用以将其用于子集化:

dat<-data.frame(A=1,B=2,C=3,D=4,E=5,F=6)

var<-data.frame(variable=c("A", "B", "C", "D"))
dat[,names(dat) %in% var$variable]
A B C D
1 2 3 4

使用逻辑向量进行子集化工作正常。 如果您需要指定顺序,请尝试 'match':

var$variable<-rev(var$variable)
dat[,match(var$variable, names(dat))]

D C B A
4 3 2 1