r - 当 R 中不满足条件时,如何让 IF 语句的 ELSE 部分输出自定义消息?
问题描述
如果表包含性别或性别,我想使用 IF 语句输出性别/性别计数。我正在使用 R markdown 并希望它输出一条消息,例如“此数据集中没有性别/性别变量”,如果数据集中没有性别/性别变量,则移动到下一个块。如果我在包含性别或性别的表上运行我的代码,它运行没有任何问题,但如果表不包含性别或性别,它将抛出错误“缺少 TRUE/FALSE 需要的值”,我想要我自己的自定义消息而不是错误。下面是我的代码:
sex_or_gender <- location %>%
select_if(names(.) %in% "sex" | names(.) %in% "gender")
if(names(location) %in% "sex" || names(location) %in% "gender") {
sex_or_gender %>%
group_by(sex_or_gender[1] %>%
summarise(sex_count = n())
} else{
print("No gender/sex variable in this dataset")
}
Result should be either;
|sex| sex_count|
| M | 256 |
| F | 301 |
| NA| 25 |
或者
|gender| sex_count|
| M | 256 |
| F | 301 |
| NA | 25 |
或者
No gender/sex variable in this dataset
注意:返回的数据框仅包含一个变量,性别或日期取决于使用的变量
解决方案
我认为诀窍是在条件中使用any()
library(dplyr)
name <- c("john", "sue", "terrence", "amy.Smith")
height <- c(68, 62, 66, 70)
weight <- c(170, 110, 155, NA)
sex <- c("Male", "Female", "Male", "Female")
gender <- c("0", "1", "2", "2")
loc1 <- data.frame(
name = name,
height = height,
Weight = weight,
sex = sex,
gender = gender
)
loc2 <- data.frame(
name = name,
height = height,
Weight = weight
)
sex_or_gender <- loc1 %>%
select_if(names(.) %in% "sex" | names(.) %in% "gender")
if (any(names(loc1) %in% "sex") || any(names(loc1) %in% "gender")) {
sex_or_gender %>%
group_by(sex_or_gender[1]) %>%
summarise(sex_count = n())
}
#> # A tibble: 2 x 2
#> sex sex_count
#> * <fct> <int>
#> 1 Female 2
#> 2 Male 2
sex_or_gender <- loc2 %>%
select_if(names(.) %in% "sex" | names(.) %in% "gender")
if (any(names(loc2) %in% "sex") || any(names(loc2) %in% "gender")) {
sex_or_gender %>%
group_by(sex_or_gender[1]) %>%
summarise(sex_count = n())
} else {
print("No gender/sex variable in this dataset")
}
#> [1] "No gender/sex variable in this dataset"
由reprex 包(v0.3.0)于 2021-03-04 创建
推荐阅读
- sql - SQL:用 ids 和 counts 连接两个表
- css - 将 SASS 变量传递给 Vue 组件属性
- tfs - 将 VS2019 项目添加到 TFS2018 时收到未指定的错误
- javascript - 如何获取最后一个 Firestore ID 文档
- reactjs - 本地主机和已部署的基本 URL 差异 - create-react-app
- python - 为什么这个 Beautiful Soup 代码没有得到目标数据?
- python - 使用 Scrapy 获取启动请求时出错
- javascript - 在 R 的 higcharts 中重复相同名称的图例
- fullcalendar - 在 FullCalendar 5.3.2 中禁用多行
- c - 我做了这个但没有工作,我做错了什么?