R 多个数据帧上变量的更改因子级别

R 多个数据帧上变量的更改因子级别,r,dataframe,data.table,R,Dataframe,Data.table,我有4个数据集,我想得到每组数据集的百分比。使用prop.tabledF1$组更改为df2$组等等都可以,但是我希望在我的表上有标签。因此,我已将该列转换为一个因子并指定了适当的级别,但这涉及到将级别指定给每个数据集 我尝试过使用Lappy,但最终在因子水平上使用了NAs 这里有一些数据 df1 <- data.table(id=(1:100), group= sample(5,100, replace=T)) df2 <- data.table(id=(1:100), group=

我有4个数据集,我想得到每组数据集的百分比。使用prop.tabledF1$组更改为df2$组等等都可以,但是我希望在我的表上有标签。因此,我已将该列转换为一个因子并指定了适当的级别,但这涉及到将级别指定给每个数据集

我尝试过使用Lappy,但最终在因子水平上使用了NAs

这里有一些数据

df1 <- data.table(id=(1:100), group= sample(5,100, replace=T))
df2 <- data.table(id=(1:100), group= sample(5,100, replace=T))
df3 <- data.table(id=(1:100), group= sample(5,100, replace=T))
df4 <- data.table(id=(1:100), group= sample(5,100, replace=T))

df1$group <- as.factor(df1$group)
df2$group <- as.factor(df2$group)
df3$group <- as.factor(df3$group)
df4$group <- as.factor(df4$group)
我所尝试的:

df <- list(df1,df2,df3,df4)
df <- lapply(df,function(x) x[,group:=factor(group, levels = c("A","B","C","D","E"))])
但这会改变级别,但会导致NAs

数据都在data.tables中,我对每个data.table中的5个因素感兴趣。我也有兴趣在多个data.tables中更改多个变量的类别,但为了简单起见,这可能是另一个问题。

我们需要指定与原始数据中的级别相对应的标签

lapply(df, function(x) x[,  group := factor(group, levels = 1:5, labels = LETTERS[1:5])])

尝试将级别更改为标签。第一步是将它们放入一个表中,dfs=listdf1、df2、df3、df4;DF=rbindlistdfs,id=dfid