【发布时间】:2018-04-10 10:35:44
【问题描述】:
这个问题与这个问题Cleaning up factor Levels collapsing multiple Level labels 有关,但我想将此扩展到数据表并折叠我的数据表的一部分列的因子水平。我一直在努力在数据表中使用 lapply...
这是我的 MWE 以及我想分别对两列使用 levels() 来实现的目标
df<-data.table(Index=1:3,factor1=c("Yes", "No", "0"), factor2=c("yes","no","no"))
str(df)
subset_factor<-c("factor1", "factor2")
label.yesno<- list("Yes" = c("Yes","yes"),
"No" = c("No", "no"))
df[,(subset_factor):=lapply(.SD,factor),.SD=subset_factor]
str(df)
levels(df$factor1)<-label.yesno
levels(df$factor2)<-label.yesno
df
我希望在创建因子时可以直接使用该列表
df[,(subset_factor):=lapply(.SD,factor, labels=label.yesno),.SD=subset_factor]
或者我可以以某种方式在另一个步骤中使用级别因素。但我找不到任何类似的东西。我实际上希望将“0”转换为 NA,因为它在我的 MWE 中完成。
【问题讨论】:
标签: r data.table factors