[英]Suggestions for Shortening code when using Boolean Operator “|” when preparing data in R
与 R 中的许多事情一样,有多种方法可以测试一组标准是否包含所需的值。 我正在寻找减少下面指示的代码量的建议。 提供了想要的结果
library(dplyr)
df.test=data.frame(
L=c("A","B","C"),
num=c(1,2,3),
num2=c(1,2,3)
)
什么工作,但有点麻烦。
myfun.=function(L){
case_when(
L == "A" | L == "B" | L == "C" ~ 1 # this is the conditional statement i am seeking to reduce
)
}
应用功能
df.test %>% mutate(
+ result=myfun.(L)
+ )
期望的输出
L num num2 result
1 A 1 1 1
2 B 2 2 1
3 C 3 3 1
我尝试过但不起作用的方法。
l=list(c("A","B","C"))
myfun.=function(L){
case_when(
L == all( L %in% l) ~ 1
)
}
我查看了几个来源,包括“使用 R 编程指南”(第 131 页)和以下后布尔运算符 && 和 || 并且无法找到更简单的解决方案。
只需使用%in%
而不是==
library(dplyr)
df.test %>%
mutate(result = +(L %in% c("A", "B", "C")))
-输出
L num num2 result
1 A 1 1 1
2 B 2 2 1
3 C 3 3 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.