r - 如何删除 2 组的一些 NA
问题描述
假设我有
HH PP mode
1 1 2
1 1 NA
1 1 NA
1 2 2
1 2 2
1 3 NA
1 3 NA
2 1 2
2 1 NA
2 2 NA
2 2 NA
第一列是家庭索引,第二列是每个家庭的人数。我想删除每个家庭中每个人的模式为 NA 的行。例如,在第三人的第一个家庭模式列中都是 NA ,所以我想删除它。第二个家庭的第二个人也一样
输出:
HH PP mode
1 1 2
1 1 NA
1 1 NA
1 2 2
1 2 2
2 1 2
2 1 NA
解决方案
library(data.table)
dt[, .SD[ ( !all( is.na( mode ) ) ) ], by= .( HH, PP ) ][]
HH PP mode
1: 1 1 2
2: 1 1 NA
3: 1 1 NA
4: 1 2 2
5: 1 2 2
6: 2 1 2
7: 2 1 NA
样本数据
dt <- fread(" HH PP mode
1 1 2
1 1 NA
1 1 NA
1 2 2
1 2 2
1 3 NA
1 3 NA
2 1 2
2 1 NA
2 2 NA
2 2 NA")
推荐阅读
- java - 将 Mockito 与 CDI 集成
- python - 在熊猫中如何将符号转换为整数?
- c++ - 从 C++ 文件中读取和写入复数(从 C 翻译)?
- arcpy - 函数 arcpy 不检索数据
- python - 如何在 plotly.py 的旭日形图中换行?
- python - 如何计算用 cv2.HoughCircles() 检测到的圆的面积?
- powershell - 由于多个结果,Powershell 返回 System.Object[] 而不是信息
- mysql - 为什么“使用索引条件”即使索引内的条件?
- cypress - 赛普拉斯网络自动化 - 无法打开测试运行器
- python-3.x - 从多个字典创建多个新列