楼主: pale1101256002
5559 4

[问答] 数据框匹配并替换 [推广有奖]

  • 0关注
  • 0粉丝

高中生

32%

还不是VIP/贵宾

-

威望
0
论坛币
57 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
172 点
帖子
8
精华
0
在线时间
38 小时
注册时间
2015-4-15
最后登录
2018-1-26

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币


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",



该怎么做呢?谢谢


二维码

扫码加我 拉你入群

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

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

关键词:数据框 Data

QQ图片20160420110027.png (3.08 KB)

QQ图片20160420110027.png

沙发
jinkelazzz 发表于 2016-4-20 12:51:03 |只看作者 |坛友微信交流群
X[which(Z<0.04)]<-"MISS"

使用道具

藤椅
pale1101256002 发表于 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

好像还是不行 - -

使用道具

板凳
jiangbeilu 学生认证  发表于 2016-4-20 13:55:14 |只看作者 |坛友微信交流群
你用which或者其它的都可以,包括下面的构建一个辅助变量:
  1. mydata$Z2 <- mydata$Z<0.04
复制代码

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

使用道具

报纸
jiangbeilu 学生认证  发表于 2016-4-20 14:03:19 |只看作者 |坛友微信交流群
如果非要这样做的话,可以用以下代码:
注意,data.frame里不能有factors型变量。
  1. 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),stringsAsFactors=F)
  2. mydata[mydata$Z <0.04,] <- data.frame(X="MISS",Y="MISS",Z="MISS",stringsAsFactors=F)
复制代码

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 14:53