提问人:cn838 提问时间:7/13/2021 最后编辑:akruncn838 更新时间:7/14/2021 访问量:77
在 R 中准备数据时使用布尔运算符“|”时缩短代码的建议
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
)
}
apply 函数
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 页)和以下帖子布尔运算符 && 和 || 但无法找到更简单的解决方案。
答:
2赞
akrun
7/13/2021
#1
只需使用而不是%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
评论