r - 如何使用 R 删除特定两列中为零或 NA 的行?
问题描述
我有一个包含多列的数据框。我有兴趣从两列中删除任何 0 或 NA 。请参阅下面的示例。
Input <- data.frame(DM = LETTERS[1:8], JM = LETTERS[19:26], CY = c(1,2,0,NA,5,34,0,NA), LY = c(2,4,NA,NA,-5,6,0,0))
DM JM CY LY
A S 1 2
B T 2 4
C U 0 NA
D V NA NA
E W 5 -5
F X 34 6
G Y 0 0
H Z NA 0
我试过以下:
Output<-Input[rowSums(Input[c("CY", "LY")], na.rm = TRUE) != 0, ]
根据我收到以下输出的代码。
DM JM CY LY
A S 1 2
B T 2 4
F X 34 6
即使总和为0,我也想获得输出。所需的输出:
DM JM CY LY
A S 1 2
B T 2 4
E W 5 -5
F X 34 6
解决方案
我们可以将零转换为 NA 或将 NA 转换为 0,然后rowSums
在逻辑矩阵上使用并对逻辑向量求反以对行进行子集化
Input[!!rowSums(replace(Input[c("CY", "LY")],
is.na(Input[c("CY", "LY")]), 0) != 0),]
# DM JM CY LY
#1 A S 1 2
#2 B T 2 4
#5 E W 5 -5
#6 F X 34 6
推荐阅读
- javascript - 表单提交错误说明.then 不是错误
- python - 如何让 Python 中的多个变量通过站点包中的相同函数运行?
- c# - `WhenAll(TaskList)` 和 `WhenAll(TaskList).Wait()` 有什么区别?
- asp.net-core - 如何从调用使用 .NET Core 3 构建的 API 的 react js 内置网站生成和/或获取 access_token 和 refresh_token?
- javascript - 如何使用 javascript 在 html5 中播放视频时产生负音频延迟?
- php - 尝试从 wp_posts 获取唯一事件列表以及来自 wp_postmeta 的数据
- java - 正在执行不同方法中的 Catch 语句,而不是引发异常的方法中的 catch Java
- image - 使用 rgl 包从本地磁盘绘制 2D 图像
- discord - 如何在 discord.js 中获取嵌入的消息链接?
- mysql - 如何按 Codeigniter 中的不同列对列组求和?