当前位置:  开发笔记 > 编程语言 > 正文

R更改NA值

如何解决《R更改NA值》经验,为你挑选了2个好方法。

我的数据如下:http: //imgur.com/8KgvWvP

我想将值更改NA为每列的另一个值.例如,在包含列NA,Single并且Dual,我想改变一切NA'Single'.

我试过这段代码:

data_price$nbrSims <- ifelse(is.na(data_price$nbrSims), 'Single', data_price$nbrSims)

但后来我的数据看起来就像这样,Dual成为2Single 1. http://imgur.com/TC1bIgw

如何在NA不更改其他值的情况下更改值?提前致谢!



1> Marta..:

试试这个(检查哪些是,NA而不是替换它们"Single"):

data_price$nbrSims <- as.character(data_price$nbrSims)
data_price$nbrSims[is.na(data_price$nbrSims)] <- "Single"


@GerritCalle是对的:你的解决方案_mostly_不起作用.只有当`Single`已经是`data_price $ nbrSims`的`level`时它才有效.试试`x <-factor(sample(c(NA,letters [1:4]),100,TRUE)); x [is.na(x)] < - "Single"`.最好事先转换为`character`.

2> akrun..:

我们在ifelse语句之后得到整数值1和2的原因是因为列是一个factor类.我们将它转​​换为character类,它应该工作正常

 data_price$nbrSims <- as.character(data_price$nbrSims)
 data_price$nbrSims <- ifelse(is.na(data_price$nbrSims), 
             'Single', data_price$nbrSims)

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有