我遇到了一个元编程任务,似乎必须有一个明显而简单的答案,但我找不到。
我在()
包含了一堆名字:
(foo, bar, buzz, zap)
我想快速将这些名称转换为字符向量:
("foo", "bar", "buzz", "zap")
我能想到的最快速度如下:
as.character(quote(c(foo, bar, buzz, zap)))[-1]
# "foo" "bar" "buzz" "zap"
我必须想象那里有一个更清洁的解决方案。
修改
可能重复,只是标题非常不同,所以很难发现: Does R have quote-like operators like Perl's qw()?
答案 0 :(得分:0)
一个。选项1
k<-"(foo, bar, buzz, zap)"
strsplit(strsplit(k,"\\(|\\)")[[1]][2],", ")[[1]]
[1] "foo" "bar" "buzz" "zap"
湾备选方案2
library(stringr)
str_extract_all(k,"[aA-zZ]+")[[1]] #assuming that it only contains letters
[1] "foo" "bar" "buzz" "zap"
答案 1 :(得分:0)
strsplit("foo, bar, buzz, zap",',')[[1]]