楼主: wuchm
89798 11

[问答] data.frame中的NA值怎么替换成0? [推广有奖]

11
falseform 发表于 2017-11-25 22:40:54 来自手机
lixuejiao0321 发表于 2017-11-22 15:26
a
谢谢,不过我想问的是如何把指定列的na变成0,之前的答题是把整个df的na变成0,我想只给几列进行操作,弄半天都没结果最后我删除那几列再添加上的
-------------------------------------------------------

我已经解决单列赋值的问题

> df <- data.frame(x1=c(1,2,NA),x2=c(NA,NA,2),X3=c(5,5,5))
> df
  x1 x2 X3
1  1 NA  5
2  2 NA  5
3 NA  2  5

df[is.na(df[,1]),1]<-0           对第一列的NA赋值0

那么问题来了 ,怎样对多列进行这个操作,我尝试 将第一和第二列进行赋值
df[is.na(df[,c(1,2)]),c(1,2)]<-0          但是会报错

问题出在哪里呢???

---------------------
我大概看了下,问题应该是两列的逻辑值应该对应两列的实际值,但是我写的那部分应该对不上,我换了个方案如下
c(as.matrix(df))[c(df[,c(1,2)]==0)]  这个就是把两列的值转换成向量了,但是存在一个向量循环的问题纠结

12
jacksenone 学生认证  发表于 2018-12-3 11:21:45
wuchm 发表于 2015-2-26 08:55
谢谢!
new_score$age[new_score$age==NA]=44
也是可以的

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 21:37