Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将“因子类型”列中的NA替换为0_R - Fatal编程技术网

R 将“因子类型”列中的NA替换为0

R 将“因子类型”列中的NA替换为0,r,R,我有一个连续字段(HighBAC),我试图根据BAC是否属于某个范围对其进行分类: BAC>=.16或=.09或

我有一个连续字段(HighBAC),我试图根据BAC是否属于某个范围对其进行分类:

BAC>=.16或<.21:类别1

BAC>=.09或<.16:第2类

State       Year    high_bac
Alabama     2016    0.15
Alabama     2015    0.15
Alabama     2011    N
Alabama     2010    N
Arizona     2016    0.15
Arizona     2015    0.15
Idaho       2016    0.2
Idaho       2015    0.2
Idaho       2014    O
Idaho       2013    O
但在我用
NA
替换“N”和“O”字符之前,我不能这样做。否则,
cut()
函数将无法工作

df_codes$high_bac[df_codes$high_bac=='N'|df_codes$high_bac=='O'] = NA
df_codes$high_bac = as.numeric(df_codes$high_bac)
df_codes$high_bac <- cut(df_codes$high_bac, breaks=c(.09, .16, .22), right=FALSE, labels=c(2:1))
在我对它们进行分类后,我想用0s替换
NA
s,因为0是一个特殊代码(不应作为一个类别包含)。但是,当我使用中建议的解决方案时,会出现以下错误:

df_codes$high_bac[is.na(df_codes$high_bac)] <- 0

df_codes$high_bac[is.na(df_codes$high_bac)]
cut
给出一个
系数
输出。将列转换为
character
类,它就可以工作了。但是,最好还是留着它,因为NAI把它转换成了角色形式,而且它很有效——谢谢。我同意,最好将其保留为NA,但我被要求将其更改为零。谢谢你的帮助,很抱歉问了个简单的问题——我是R语言的新手。
df\u codes$high\u bac这正是我所要找的——我无法理解将0作为特殊代码包含的
label
语法(即,不包括在范围内,并且在不应该有任何点数的情况下意外地给它一个高分值)。谢谢!
df_codes$high_bac[is.na(df_codes$high_bac)] <- 0