我知道我可以使用 data.frame 命令将多个向量组合成一个数据帧,如下所示:
my.data <- data.frame(name1, age1, name20, age20, name38, age38)
(我知道,变量名称没有多大意义,为什么我想要 name1、name20 和 name38 位于三个不同的列中?请忽略这一点:我的实际变量名称不同 - 这仅用于说明目的) .
问题是,我有大约 40 个这样的向量,而且我还必须在代码的其他部分组合许多向量。所以对我来说,不用每次都复制粘贴一大堆代码会很方便。所以我想围绕这个编写一个 for 循环:
for (i in c("name", "age", "hgt"))
{
for (k in c(1,20,38))
{
my.data$i,as.character(k) <- data.frame(get(paste(i,as.character(k),sep="")))
}
}
但这行不通。这是因为我应该在其中一些代码周围编写“paste()”,还是这只是解决这个问题的一个坏方法?循环 i 和 k 并获得“newdata”数据帧作为最终结果并将所有向量作为附加列的正确方法是什么?
最佳答案
您是否正在尝试实现以下目标?
name1 <- letters[1:10]
age1 <- 1:10
name20 <- letters[11:20]
age20 <- 11:20
name38 <- LETTERS[1:10]
age38 <- 21:30
paste.pattern <- paste(rep(c("name", "age"), times = 3),
rep(c(1, 20, 38), each = 2), sep = "")
newdata <- data.frame(sapply(paste.pattern, get))
关于r - 如何轻松地将多个向量组合成一个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13105888/