【发布时间】:2019-05-08 09:50:58
【问题描述】:
我有 n 个数据框,我想为我的每个数据框创建一个相同的变量,该变量填充了数据框的相应名称。
i.e.:
dataframe_a
var 1 | var 2 | var 3 | variable
x | x | x | dataframe_a
x | x | x | dataframe_a
x | x | x | dataframe_a
dataframe_b
var 1 | var 2 | var 3 | variable
x | x | x | dataframe_b
x | x | x | dataframe_b
x | x | x | dataframe_b
dataframe_c
var 1 | var 2 | var 3 | variable
x | x | x | dataframe_c
x | x | x | dataframe_c
x | x | x | dataframe_c
有两种方法(如下),我可以分别为每个数据帧做我想做的事。但是,我怎样才能把下面的代码变成一个for循环,这样我就不用写100次了呢?
(我正在使用 dplyr::mutate)
#Take a, b and c as separate dataframes
dataframe_a$variable <- paste("dataframe_a")
dataframe_b$variable <- paste("dataframe_b")
dataframe_c$variable <- paste("dataframe_c")
#or
dataframe_a %<>% mutate(variable = paste("dataframe_a"))
dataframe_b %<>% mutate(variable = paste("dataframe_b"))
dataframe_c %<>% mutate(variable = paste("dataframe_c"))
我尝试了以下方法,但它不起作用
vector <- c("a", "b", "c")
for (i in vector){
df <- get(i)
assign(i, mutate(location = paste(i)), envir = .GlobalEnv)
}
【问题讨论】: