r - 根据数据框中某一列的条件,删除同一行其他列中的数据
问题描述
我想知道当 trt=C 时如何从一行中的所有其他列中删除所有数据。我对适用于很多专栏的解决方案感兴趣!
A <- sample(1:100,9)
B <- sample(1:100,9)
trt <- rep(c("A", "B", "C"),3)
df <- data.frame(trt, A, B)
df
trt A B
1 A 32 43
2 B 29 79
3 C 94 95
4 A 100 24
5 B 63 38
6 C 80 92
7 A 22 98
8 B 61 56
9 C 69 81
to look like this:
trt A B
1 A 90 50
2 B 84 100
3 C NA NA
4 A 42 17
5 B 61 43
6 C NA NA
7 A 78 84
8 B 27 36
9 C NA NA
就像是...
if(df$trt=="C") {
df[,i] <- NA
}
解决方案
我们可以使用[
来选择行和列来改变,即
df[df$trt == 'C', -1] <- NA
这使,
trt A B 1 A 87 56 2 B 53 18 3 C NA NA 4 A 8 1 5 B 79 38 6 C NA NA 7 A 48 36 8 B 55 22 9 C NA NA
您还可以使用它来选择特定的列,
df[df$trt == 'C', -c(1, 3)] <- NA
这使,
trt A B 1 A 96 27 2 B 21 13 3 C NA 34 4 A 43 98 5 B 70 93 6 C NA 64 7 A 2 60 8 B 40 94 9 C NA 11
推荐阅读
- javascript - 当现有的“坏” serviceWorker 处于活动状态并首先缓存时强制 serviceWorker 更新
- acumatica - 在 Acumatica 销售订单屏幕的“添加库存项目”对话框中添加列
- java - Mockito 在改变行为时调用一次模拟方法
- html - 视差布局和 z-index
- django - ReactJS/Django 项目:如何处理用户上传/观看的视频?
- regex - debezium 主题路由 3 表
- reactjs - 使用 React 返回,出现语法错误?
- c# - 显示 Ajax GIF 显示错误(类型未处理的异常)
- javascript - 未定义不是对象(评估“this.state.data.confirmed.value”)
- java - 在类路径资源 [resources/spring.xml] 中创建名称为“sassionFactory”的 bean 时出错:调用 init 方法失败