楼主: lanhong1993
7895 12

[程序分享] 求助,如何筛选含有特定缺失值的行? [推广有奖]

  • 1关注
  • 1粉丝

博士生

54%

还不是VIP/贵宾

-

威望
0
论坛币
2701 个
通用积分
3.4261
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
12167 点
帖子
214
精华
0
在线时间
141 小时
注册时间
2016-11-1
最后登录
2024-3-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据集如下:

id   var1   var2   var3   var4   var5
1    5.4    6.7    5.8    4.9     NA
3    5.5    6.0    7.9    NA      8.8
5    2.9    9.9     8.9    5.9     NA
6    NA     NA     NA     8.7     6.8
7    4.9    2.0    8.9    3.8     5.8
10   4.4    3.8    6.8    NA      NA

......       ........
我想筛选出变量var5为缺失值,而其他变量均不是缺失值的行,比如第一行和第三行,这该怎么做呢?


二维码

扫码加我 拉你入群

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

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

关键词:缺失值 VaR 怎么做 筛选出 数据集 如何

沙发
johnmy 发表于 2017-3-29 18:09:28 |只看作者 |坛友微信交流群
假设你的数据框是a

library(dplyr)
a%>%filter(!is.na(var1),!is.na(var2),!is.na(var3),!is.na(var4),is.na(var5))
已有 1 人评分经验 收起 理由
李会超 + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

使用道具

藤椅
丘延君 发表于 2017-3-30 07:36:32 来自手机 |只看作者 |坛友微信交流群
lanhong1993 发表于 2017-3-29 16:56
数据集如下:

id   var1   var2   var3   var4   var5
A<-A[which(is.na(A$var5)),]
已有 1 人评分经验 收起 理由
李会超 + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

使用道具

板凳
jgchen1966 发表于 2017-3-30 12:08:40 |只看作者 |坛友微信交流群
johnmy 发表于 2017-3-29 18:09
假设你的数据框是a

library(dplyr)
条件设置,似有问题吧。该是:
a%>%filter(not(is.na(var1)|is.na(var2)|is.na(var3)|is.na(var4)) & is.na(var5))
但是:  
如果,有几百,甚至上千个变量,如何办?? 推荐 purrr包中的相关函数!!

使用道具

报纸
johnmy 发表于 2017-3-30 13:07:51 |只看作者 |坛友微信交流群
jgchen1966 发表于 2017-3-30 12:08
条件设置,似有问题吧。该是:
a%>%filter(not(is.na(var1)|is.na(var2)|is.na(var3)|is.na(var4)) & i ...
两个得到的结果一样,
“not”应该是“!”

使用道具

地板
johnmy 发表于 2017-3-30 13:09:50 |只看作者 |坛友微信交流群
!(x |y) is the same as !x & !y.

使用道具

7
jgchen1966 发表于 2017-3-30 13:32:01 |只看作者 |坛友微信交流群
johnmy 发表于 2017-3-30 13:07
两个得到的结果一样,
“not”应该是“!”
"not",是magrittr包中提供的一个很好“ !”代替!

使用道具

8
jgchen1966 发表于 2017-3-30 13:40:52 |只看作者 |坛友微信交流群
johnmy 发表于 2017-3-30 13:09
!(x |y) is the same as !x & !y.
用not(x | y) ,在将一个数据集按 x | y 条件分成二部分等操作中,比 not(x) & not(y),不仅省代码,也 更易用。尤其,在繁重的大数据集的清理工作中。。

使用道具

9
jgchen1966 发表于 2017-3-30 13:52:56 |只看作者 |坛友微信交流群
jgchen1966 发表于 2017-3-30 13:40
用not(x | y) ,在将一个数据集按 x | y 条件分成二部分等操作中,比 not(x) & not(y),不仅省代码,也 更 ...
比如,楼一的数据集,其实更好的操作,按条件(is.na(var1)|is.na(var2)|is.na(var3)|is.na(var4)) 分成二部分:
a1<filter(a,is.na(var1)|is.na(var2)|is.na(var3)|is.na(var4))

  a2<-filter(a,not(is.na(var1)|is.na(var2)|is.na(var3)|is.na(var4)))
然后,使用a2,或取出var5为NA的,这真是楼主想要的,或用a2进行var5缺失的补值。

使用道具

10
小朝 发表于 2017-3-30 21:58:25 |只看作者 |坛友微信交流群
  1. library(dplyr)
  2. a <- read.table('D:/a.txt',header = T)
  3. a <- a %>% mutate(t=rowSums(is.na(a))) %>% filter(is.na(var5) & t==1)
复制代码

使用道具

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

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

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

GMT+8, 2024-6-19 21:32