R - 创建包含数字范围的名称向量

时间:2015-05-29 22:47:45

标签: r vector rstudio

我有一个变量名称列表{' X14_question_1',' X14_question_2' ......等等,让我们说有20个。如何将这些名称分配给矢量而无需手动输入所有这些名称?

我能否以某种方式与此相似 - vector = c('X14_question_'1':20)(这个确切的语法不是工作obv),还是我必须使用循环?

3 个答案:

答案 0 :(得分:2)

事实证明找到答案相对容易,我只是找不到合适的地方!

非常感谢。 :)

vector=c(paste("X14_question_",1:20,sep=""))

答案 1 :(得分:1)

我喜欢sprintf这些类型的东西,因为它也允许你在这个过程中进行一些转换。

这是一种基本的(无转型)方法:

vec1 <- sprintf('X14_question_%d', 1:20)
head(vec1)
# [1] "X14_question_1" "X14_question_2" "X14_question_3" "X14_question_4"
# [5] "X14_question_5" "X14_question_6"

这是一种在数字中填充零的方法,以便更轻松地进行排序。

vec2 <- sprintf('X14_question_%02d', 1:20)
head(vec2)
# [1] "X14_question_01" "X14_question_02" "X14_question_03" "X14_question_04"
# [5] "X14_question_05" "X14_question_06"

答案 2 :(得分:0)

让我们看看这是否对您有所帮助:

vars <- paste('X14_question_', 1:20)
v <- vector()
for(i in 1:length(vars)) {
  v[i] <- eval(parse(text = vars[i]))
}

也许这不是最干净的方式,但可能有效