r - 如何指定“如果缺少两个变量”?
问题描述
在数据集“df”中,如果缺少任何变量或 check=0,我想将行标记为“bad”。
df <- data.frame(col1 = c(10, 11, NA, NA, 13),
col2 = c(9, NA, NA, 7, 6), check = c(1,0,1,0,0))
if (is.na(df$col1)|is.na(df$col2)|(df$check == 0)){
df$flag = "bad"
}else{
df$flag == "good"
}
该代码不起作用,并且警告消息是:
警告消息:在 if (is.na(df$col1) | is.na(df$col2) | (df$check == 0)) { 中:条件的长度 > 1,并且只使用第一个元素
解决方案
我们可以做到这一点rowSums
df$flag <- ('Good', 'Bad')[(rowSums(is.na(df[1:2])) > 0 | df$check == 0) +1]
或使用ifelse
df$flag <- with(df, ifelse(is.na(col1)|is.na(col2)|check == 0, "bad", "good"))
推荐阅读
- php - 未定义路由登录(多身份验证)
- azure-data-factory - 如何在存储帐户中使用 azure 数据工厂迁移表,该表具有多种类型
- if-statement - 如果用户没有为 Active Choice Parameterized 管道构建输入值,则退出管道
- c# - 为什么我不能在剃刀条件语句中使用变量
- python - 这段代码怎么能写在一行里?如何写得更 Python 化?
- java - 致命异常:java.lang.IllegalStateException - 无法为 LinearLayout 创建层(仅在 Galaxy j4+、j6+ 中崩溃)
- django - 在 Django 的 url 中具有主键的 Ajax 无法工作
- c++ - char* 和 std::string 和 const char* 之间的转换
- javascript - 有没有办法将滚动移动到已搜索的列
- linux - 在 Linux 内核 Makefile 中回显字符串