输入变量列表而不在它们之间手动添加逗号

时间:2012-05-16 14:57:54

标签: r list variables

基本上我想实现这个目标:

vars <- c(x1, x20, x37, etc)
summary(data[vars])

但是,我的变量列表很长,之间没有逗号

修改:Data有500个变量,vars是我要选择的列表。变量名称不遵循任何模式。该列表的格式为x1 x20 x37 etc,即以空格分隔。此列表来自SAS语法文件,不属于R工作区。

我研究了将变量与cat()之类的分隔符连接起来的函数。然而,这从一开始就需要一个对象。另一种方法是在编辑器中使用find / replace(空格到逗号),但我认为这是一个肮脏的黑客。

显然,我在定义变量列表时遗漏了一些东西;必须有一个简单的解决方案。

3 个答案:

答案 0 :(得分:7)

使用此:

data <- data.frame(x1 = rnorm(10), x2 = rnorm(10))
vars <- "x1 x2"
data[unlist(strsplit(vars, ' '))]

答案 1 :(得分:2)

看起来它们已经是工作区中变量的名称了吗?

x <- ls()[grep('^x\\d', ls())]

如果你没有任何以x和你想要包含的数字开头的东西,那么这可能会让你到那里。

如果它们是您正在粘贴的文本字符串,那么可能是

x <- scan()

(一般来说,你的问题很模糊)

答案 2 :(得分:1)

假设您可以将文件放入文本文件中(很难说不知道数据来自何处):将变量保存为纯文本文件。使用scan:

将它们读取到数据文件中
df <- read.table("foo.txt", sep=" ")

然后,您可以使用names(df)为数据框中的列命名;或者,如果您可以获得包含您可以使用的列名称的文本文件

df <- read.table("foo.txt", header=TRUE, sep=" ")