我有一个 dfs lst
列表,lst
中的每个 df 都有变量“ID”。可以一次性设置“ID”作为一个因素,而不是一个一个设置?
这是否称为在全局环境中设置变量?我可能用错了术语。
答案 0 :(得分:2)
我们可以用 list
和 lapply
transform
lst <- lapply(lst, transform, ID = factor(ID))
或者如果我们在全局环境中有一个带有字符串“ID”的对象
v1 <- "ID"
lst <- lapply(lst, function(x) {
x[[v1]] <- factor(x[[v1]])
x})
答案 1 :(得分:2)
您也可以使用tidyverse
:
library(purrr)
library(dplyr)
map(lst, ~.x%>%mutate(ID=as.factor(ID))
鸢尾花数据集示例:
#first transform the Species into a character variable:
iris<-iris%>%mutate(Species=as.character(Species))
#second, create an additional iris dataframe for the list
iris2<-iris
lst<-list(df1=iris, df2=iris2)
#Then call map with the mutating function:
map(lst, ~.x%>%mutate(Species=as.factor(Species)))