【发布时间】:2016-11-17 11:45:42
【问题描述】:
例如,我有 6 列的数据框(都是因子)。
我想从出现此级别的所有因素中删除特定级别,例如“否”。
我想从我的因子变量中删除因子级别“否”,同时我想删除(设置为 NA)所有具有“否”值的答案。
我试过这段代码:
sapply(fact,function(x) levels(x)[levels(x) == "no"] <- NULL)
但是这段代码不起作用。
我该怎么做?
【问题讨论】:
-
这不是一个直接的答案,但请考虑
droplevels是否适合您的情况。如果是,您的代码将简化为lapply(fact, droplevels)。 -
@KonradRudolph,在这种情况下,他们可以使用
droplevels(fact) -
正如 Konrad 所说,您的问题并不清楚。您是要删除答案为“否”的观测值,还是已删除它们而您只是想从因子水平中删除该水平?
-
@lmo 我想从我的因子变量中删除因子级别“否”,同时我想删除(设置为 NA)所有具有“否”值的答案。跨度>
-
要将所有列的因子转换为 NA,请使用
lapply(df, function(x) { levels(x)[levels(x) %in% 'c']=NA ; return(x) })。