基本上我想实现这个目标:
vars <- c(x1, x20, x37, etc)
summary(data[vars])
但是,我的变量列表很长,之间没有逗号。
修改:Data
有500个变量,vars
是我要选择的列表。变量名称不遵循任何模式。该列表的格式为x1 x20 x37 etc
,即以空格分隔。此列表来自SAS语法文件,不属于R工作区。
我研究了将变量与cat()
之类的分隔符连接起来的函数。然而,这从一开始就需要一个对象。另一种方法是在编辑器中使用find / replace(空格到逗号),但我认为这是一个肮脏的黑客。
显然,我在定义变量列表时遗漏了一些东西;必须有一个简单的解决方案。
答案 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=" ")