如何将变量设置为全局环境中的因子

时间:2021-07-12 16:16:43

标签: r

我有一个 dfs lst 列表,lst 中的每个 df 都有变量“ID”。可以一次性设置“ID”作为一个因素,而不是一个一个设置?

这是否称为在全局环境中设置变量?我可能用错了术语。

2 个答案:

答案 0 :(得分:2)

我们可以用 listlapply

遍历 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)))