作者HumuHumu (呼姆呼姆)
看板R_Language
标题Re: [问题] 根据条件删除资料
时间Wed Nov 15 17:27:05 2017
※ 引述《Whatfor (Live for what?)》之铭言:
: 大家好,
: 我是R的新手,
: 下列问题若过於简单请多包涵~~
: 目前有资料如下:
: A B C D E F
: 1 96 1 NA NA 3
: NA NA NA NA 96 NA
: 1 0 1 0 1 2
: A~F是栏位名称,
: 我想把只要A~F中有96者的纪录整笔删除,
: 指令下这样:
: d<-data[!(A==96|B==96|C==96|D==96|E==96),]
: 可是跑不出正确的笔数,
: 想请问这样写是否哪边要更正?
: 或有其他写法,
: 谢谢大家~
可以用apply找出哪些row含有96,然後去掉这些row
可能有其他版友有更好的方法也可以分享一下
https://pastebin.com/wEMeEY1w
你那样的写法必须要先定义ABCDE是什麽东西 不然他会显示没有这个物件
或是要用data$A才能正确的判别A是data这个data.frame里面的一个栏位
d<-data[!(data$A==96|data$B==96|data$C==96|data$D==96|data$E==96),]
或是先
attatch(data)
再
d<-data[!(A==96|B==96|C==96|D==96|E==96),]
才可以抓到ABCDE这些物件
还有一种方法是用with
with(data,data[!(A==96|B==96|C==96|D==96|E==96),])
还有一个资料整理神器dplyr 但这我不常用
library(dplyr)
filter(df,A!=96,B!=96,C!=96,D!=96,E!=96)
以上
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.114.53.208
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1510738028.A.FCE.html
※ 编辑: HumuHumu (140.114.53.208), 11/15/2017 17:50:43
1F:推 dc47dc: 推dplyr 版上有超详细教学文 11/26 10:57