全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1025 8
2016-12-23
我有数据为dat为
  var1 var2 var3
1    2    8    L
2   NA    6    L
3    3   NA    L
4    5    5    K
5   NA   NA    K
6   NA    5    K
我想按照var3中的变量来修改var1中的NA值
if(dat$var3=="L" && dat$var1=="NA")  dat$var1 <- 1
这样为什么修改不了呢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-12-24 00:44:48
没有试你的代码,但是觉得应该有两个地方值得注意:1.判断NA值不能用 =="NA", 而要用 is.na(),除非那一列是字符串。 2. R里的if,是只接受一个长度的condition的,即其condition不支持向量化(具体查看?Control)。也许ifelse能帮到你。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-24 01:46:33
val1[is.na(val1)==T]=val3[which(is.na(val1)==T,arr.ind=TRUE)]##试试,不谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-24 09:50:36
zerofung 发表于 2016-12-24 00:44
没有试你的代码,但是觉得应该有两个地方值得注意:1.判断NA值不能用 =="NA", 而要用 is.na(),除非那一列 ...
谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-24 09:52:33
机械唯物主义123 发表于 2016-12-24 01:46
val1=val3[which(is.na(val1)==T,arr.ind=TRUE)]##试试,不谢
谢谢,昨天我试了 for(i in 1:7){
     if(is.na(dat$var1) && dat$var3=="K") dat$var1 <- 0
},不行,今天再一试又可以了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-24 09:58:57
飞天玄舞6 发表于 2016-12-24 09:52
谢谢,昨天我试了 for(i in 1:7){
     if(is.na(dat$var1) && dat$var3=="K") dat$var1
对里面每一个var进行循环寻找
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群