r - aa循环中的ifelse与R中的向量
问题描述
我有一个看起来像的数据集
V1 V2 V3
1 Yes 1 a
2 no 2 a
3 Yes 3 NULL
4 no 4 a
5 Yes 1 a
6 no 2 NULL
7 Yes 3 a
8 no 4 a
9 Yes 1 NULL
10 no 2 a
11 Yes 3 a
12 no 4 NULL
13 Yes 1 a
14 no 2 a
15 Yes 3 a
16 no 1 NULL
17 Yes 2 a
然后我有两组向量
values=c('Yes',3)
columns=c(1,2)
我想检查第 1 列是否等于是,第 2 列等于 3。我使用了这段代码
f=ifelse(data[,columns[1]]==values[1] & data[,columns[2]]==values[2] ,1,0)
这工作得很好,但我想要的代码将遍历大小为 n、n 值和 n 列的向量。
我试过了
flagf=apply(data, 1, function(x) {ifelse(all(data[,columns[1:length(columns)]==values[1:length(values])),0,1)})
和
ifelse(data[,columns[1:length(columns)]==values[1:length(values)],0,1)
两者都没有工作。
解决方案
在没有完全了解你的情况的情况下,我建议你dplyr
结合使用ifelse
.
library(dplyr)
df <- read.table("clipboard", header=T) # reading your data...
df %>%
mutate(cond = ifelse(V1=="Yes" & V2==3, TRUE, FALSE))
V1 V2 V3 cond
1 Yes 1 a FALSE
2 no 2 a FALSE
3 Yes 3 NULL TRUE
4 no 4 a FALSE
5 Yes 1 a FALSE
6 no 2 NULL FALSE
7 Yes 3 a TRUE
8 no 4 a FALSE
9 Yes 1 NULL FALSE
10 no 2 a FALSE
11 Yes 3 a TRUE
12 no 4 NULL FALSE
13 Yes 1 a FALSE
14 no 2 a FALSE
15 Yes 3 a TRUE
16 no 1 NULL FALSE
17 Yes 2 a FALSE
推荐阅读
- python - check_field 显示登录正确而无需连接到 mysql DB 为什么 Pyqt5
- php - How to round up from the hundredth point in php
- amazon-web-services - AWS Elastic Beanstalk 未在 LIVE 上连接到 RDS(在 Localhost 上工作)
- r - 如何在 Shiny 应用程序中正确格式化数据集?
- racket - 如何将每个元素添加到列表中?
- python - 根据现有列中的值创建 Pandas DF 列
- r - 包 ecodist 中的功能 MRM 的尺寸不正确错误
- swift - Swift 从 CoreData 转换为 CoreLocation - 有一些问题
- visual-studio - 是否可以使用 PyCharm 以外的 IDE 远程调试 AWS Glue 脚本?
- flutter - 是否可以根据 ThemeData 中的 lightTheme 或 darkTheme 更改图标?飘飘然