Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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数据帧中_R_Replace_Dataframe - Fatal编程技术网

替换用“替换”编码的缺失值&引用;在R数据帧中

替换用“替换”编码的缺失值&引用;在R数据帧中,r,replace,dataframe,R,Replace,Dataframe,我有一个数据帧,其中缺少由“.”编码的值,我想将这些值重新编码为NA: df问题在于您的df$h列是一个因素。首先尝试将其设置为字符,然后替换“.”-值: 当然,一旦你去掉了点,你可以把它转换成一个数值变量来计算,如果你想: df$h <- as.numeric(df$h) df$h使用is.na功能。不需要转换为factor,尽管您具有字符值的事实确实导致了您想要的数值的强制 > df <- data.frame("h"=c(1,1,".")) > is.na(df)

我有一个数据帧,其中缺少由“.”编码的值,我想将这些值重新编码为NA:


df问题在于您的df$h列是一个因素。首先尝试将其设置为字符,然后替换“.”-值:

当然,一旦你去掉了点,你可以把它转换成一个数值变量来计算,如果你想:

df$h <- as.numeric(df$h)

df$h使用
is.na
功能。不需要转换为factor,尽管您具有字符值的事实确实导致了您想要的数值的强制

> df <- data.frame("h"=c(1,1,"."))
> is.na(df) <- df=="."
> df
     h
1    1
2    1
3 <NA>
>df是.na(df)df
H
1    1
2    1
3.
我不知道为什么@Tylerlinker删除了他关于使用“na.strings”的回复,因为我认为这是正确的答案


注释:一年后,我看到这一点,意识到a)OP误解了缺失值在因子或字符向量中的显示方式,b)主要问题不是重新编码R缺失值时出错,OP的代码已经正确地完成了这一点,而是@joran发现的拼写错误。

是的,没错,这是一个因素。首先,按照以下语法将其转换为数字

df <- transform(df, h=as.numeric(h)) 

df另外,我想你的意思是
na.rm=TRUE
,而不是
rm.na=TRUE
。实际上,列是一个因子这一事实并没有什么区别。您仍然可以匹配等于“
”的值。正如您所指出的,真正的问题是,在计算平均值之前,您需要将其转换为数值。
> df <- data.frame("h"=c(1,1,"."))
> is.na(df) <- df=="."
> df
     h
1    1
2    1
3 <NA>
df <- transform(df, h=as.numeric(h)) 
df$h[is.na(df$h)] <- "0" and then view the data View(df)