我有一个数据集,其中一个列有因子级别"a" "b" "c" "NotPerformed".如何将所有"NotPerformed"因素更改为NA?
Mat*_*erg 14
将级别设置为NA:
x <- factor(c("a", "b", "c", "NotPerformed"))
x
## [1] a b c NotPerformed
## Levels: a b c NotPerformed
levels(x)[levels(x)=='NotPerformed'] <- NA
x
## [1] a b c <NA>
## Levels: a b c
Run Code Online (Sandbox Code Playgroud)
请注意,系数级别已删除.
我修改了我的旧答案并提供了截至 2016 年 9 月您可以做的事情。随着dplyr软件包的开发,现在您可以使用它recode_factor()来完成这项工作。
x <- factor(c("a", "b", "c", "NotPerformed"))
# [1] a b c NotPerformed
# Levels: a b c NotPerformed
library(dplyr)
recode_factor(x, NotPerformed = NA_character_)
# [1] a b c <NA>
# Levels: a b c
Run Code Online (Sandbox Code Playgroud)
或者简单地使用内置exclude选项,无论初始变量是字符还是因子,该选项都有效。
x <- c("a", "b", "c", "NotPerformed")
factor(x, exclude = "NotPerformed")
[1] a b c <NA>
Levels: a b c
factor(factor(x), exclude = "NotPerformed")
[1] a b c <NA>
Levels: a b c
Run Code Online (Sandbox Code Playgroud)