1
我有一个数据框的列表,我期待为列表中的每个数据框分配一个变量列,该列简单地是给定数据框名称的字符向量。R +数据框名称作为字符串变量
data <- list(
d1 = data.frame(animal = sample(c("cat","dog","bird"), 5, replace = T)),
d2 = data.frame(animal = sample(c("cat","dog","bird"), 5, replace = T)),
d3 = data.frame(animal = sample(c("cat","dog","bird"), 5, replace = T))
)
这产生了:
> data
$d1
animal
1 cat
2 bird
3 cat
4 cat
5 cat
$d2
animal
1 dog
2 cat
3 cat
4 cat
5 bird
$d3
animal
1 cat
2 dog
3 cat
4 cat
5 cat
我想要做的就是创建类似如下:
> newdata
$d1
animal newvar
1 cat d1
2 cat d1
3 cat d1
4 dog d1
5 cat d1
$d2
animal newvar
1 bird d2
2 cat d2
3 bird d2
4 cat d2
5 cat d2
$d3
animal newvar
1 bird d3
2 bird d3
3 cat d3
4 cat d3
5 bird d3
但我不能完全弄清楚如何实际引用数据帧名 - 在数据帧列表中 - 并将其适当地转换为字符向量。
像下面的东西不起作用:
namefunc <- function(x) {
x <- x %>% transform(newvar = as.character(x))
}
newdata <- namefunc(data)