R:使用paste()构建包含许多列的数据框

时间:2015-06-04 12:40:07

标签: r

col1 <- c(1, 2, 3)
col2 <- c(4, 5, 6)
col3 <- c(7, 8, 9)
  • 一方面data.frame(col1, col2, col3)

给出

  col1 col2 col3
1    1    4    7
2    2    5    8
3    3    6    9
  • 另一方面paste0("col", 1:3, collapse=", ")

给出

[1] "col1, col2, col3"
  • 问题:是否可以使用data.frame(paste0("col", 1:3, collapse=", "))之类的内容构建数据框?

2 个答案:

答案 0 :(得分:2)

您可能想要使用mget

do.call(cbind, mget(paste0("col", 1:3)))

paste0生成变量名称的位置,mget获取相关值,cbind将它们放在一个数据框中。

答案 1 :(得分:2)

如果我们已经有一个将对象粘贴在一起的字符串,我们可以使用strsplit拆分字符串并使用mget获取值。这将返回list输出。然后用data.frame换行将其转换为&#39; data.frame`

data.frame(mget(strsplit(str1, ', ')[[1]])) 

数据

str1 <- paste0("col", 1:3, collapse=", ")