全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5809 4
2016-04-20


mydata <- data.frame(X=c("a", "b", "c", "d", "e", "f"),Y=c("m","m","m","n","n","k"), Z=c(0.01, 0.001,0.04,1.22,0.06,0.79))

mydata_deal

我想把Z列小于0.04的对应行变成"MISS",



该怎么做呢?谢谢


附件列表
QQ图片20160420110027.png

原图尺寸 3.08 KB

QQ图片20160420110027.png

二维码

扫码加我 拉你入群

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

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

全部回复
2016-4-20 12:51:03
X[which(Z<0.04)]<-"MISS"
二维码

扫码加我 拉你入群

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

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

2016-4-20 13:29:04
jinkelazzz 发表于 2016-4-20 12:51
X[which(Z
> mydata$X[which(mydata$Z<0.04)]<-"MISS"
Warning message:
In `[<-.factor`(`*tmp*`, which(mydata$Z < 0.04), value = c(NA, NA,  :
  invalid factor level, NA generated
> mydata
     X Y     Z
1 <NA> m 0.010
2 <NA> m 0.001
3    c m 0.040
4    d n 1.220
5    e n 0.060
6    f k 0.790

好像还是不行 - -
二维码

扫码加我 拉你入群

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

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

2016-4-20 13:55:14
你用which或者其它的都可以,包括下面的构建一个辅助变量:
复制代码

原来的数据就让它保持原样,有Z2,你可以筛选出哪些是满足你的条件行,这样就可以了。
如果你要把那一行变成NA或者MISS,可以用循环解决。
二维码

扫码加我 拉你入群

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

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

2016-4-20 14:03:19
如果非要这样做的话,可以用以下代码:
注意,data.frame里不能有factors型变量。
复制代码
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群