【发布时间】:2021-03-17 19:14:46
【问题描述】:
我是 R 的新手,如果有任何帮助,我将不胜感激!
我创建了 12 个数据框,分别命名为 b1、b2、... b12。 现在在每个数据帧中,我想创建一个变量“Orig”来指示数据帧的数量。
换句话说,我想写一个和这段代码一样的循环:
b1$Orig <- 1
b2$Orig <- 2
...
b12$Orig <- 12
或者像这个:
b1 <- b1 %>%
mutate(Orig = 1)
...
b12 <- b12 %>%
mutate(Orig = 12)
我试过这个:
for (i in 1:n){
paste0("b", as.character(i))[[Orig]] <- i
}
但是得到一个错误:
paste0("b", as.character(i))[[Orig]]
所以我想我需要先在循环中创建一个向量 Orig,但是
我也试过这个:
for (i in 1:n){
assign (paste0("b", as.character(i)), paste0("b", as.character(i)) %>% mutate(Orig = i))
}
但是得到一个错误:
UseMethod("mutate") 中的错误: 没有适用于“字符”类对象的“变异”方法
这里我尝试使用 as.data.frame 函数
for (i in 1:n){
assign (paste0("b", as.character(i)), as.data.frame(paste0("b", as.character(i))) %>% mutate(Orig = i))
}
,但结果我只得到 (1x1) 个带有单个数字的数据帧。
我想知道我还能做什么? 非常感谢!
【问题讨论】:
-
一个简单的数据帧计数器就是将数据帧存储在一个列表中,并通过其列表索引号引用一个特定的数据帧。例如
blist <- list(b1, b2, ... b12)blist[[4]]是数据框b4