- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 case_when
使用 rowwise
汇总数据框在dplyr
.我有一个示例数据框,如下所示
structure(list(A = c(NA, 1, 0, 0, 0, 0, 0), B = c(NA, 0, 0, 1,
0, 0, 0), C = c(NA, 1, 0, 0, 0, 0, 0), D = c(NA, 1, 0, 1, 0,
0, 1), E = c(NA, 1, 0, 1, 0, 0, 1)), row.names = c(NA, -7L), class = "data.frame")
当我提到所有的名字时代码有效
df %>%
rowwise() %>%
mutate(New = case_when(any(c(A,B,C,D,E) == 1) ~ 1,
all(c(A,B,C,D,E) == 0 ) ~ 0
))
我可以在向量中传递名称吗,例如 cols <- colnames(df)
, 然后是 case_when
最佳答案
要回答您的问题,您可以在 dplyr
1.0.0 或 c_across()
cur_data()
library(dplyr)
df %>%
rowwise() %>%
mutate(New = case_when(any(cur_data() == 1) ~ 1,
all(cur_data() == 0 ) ~ 0))
# A B C D E New
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 NA NA NA NA NA NA
#2 1 0 1 1 1 1
#3 0 0 0 0 0 0
#4 0 1 0 1 1 1
#5 0 0 0 0 0 0
#6 0 0 0 0 0 0
#7 0 0 0 1 1 1
使用 c_across()
:
df %>%
rowwise() %>%
mutate(New = case_when(any(c_across()== 1) ~ 1,
all(c_across()== 0 ) ~ 0))
但您也可以使用 rowSums
解决此问题:
df %>%
mutate(New = case_when(rowSums(. == 1, na.rm = TRUE) > 0 ~ 1,
rowSums(. == 0, na.rm = TRUE) == ncol(.) ~ 0))
关于r - 如何在 case_when 中传递列名向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64374376/
我想知道我在这里做错了什么。。我尝试结合使用case_When()和SUMMISE()来获取每个id的摘要,具体取决于每个id的行数。。创建于2023-09-09,Reprex v2.0.2。但我只想
我想知道我在这里做错了什么。。我尝试结合使用case_When()和SUMMISE()来获取每个id的摘要,具体取决于每个id的行数。。创建于2023-09-09,Reprex v2.0.2。但我只想
我想知道我做错了什么。。我尝试结合使用case_When()和SUMMISE()来获取每个id的摘要,具体取决于每个id的行数。。创建于2023-09-09,Reprex v2.0.2。但我只想有:
我想知道我在这里做错了什么。。我尝试结合使用case_When()和SUMMISE()来获取每个id的摘要,具体取决于每个id的行数。。创建于2023-09-09,Reprex v2.0.2。但我只想
我正在尝试在 case_when() 中使用 %in%,但是它不像在 R 中一般那样工作。下面是一个示例。有人可以指导这个实现有什么问题吗? df % mutate(flag=case_when(na
我想将 case_when 应用于数据框中的所有列。 set.seed(1) data 0.5”替换,对于高于 1 的列,我想用“>1”替换。 我试过 case_when,但似乎我必须指定像 x 和
我正在处理以下需要使用 case_when 的问题。但是,我遇到了错误消息 Error: must be a logical vector, not a double vector 因为替换的列不是同
这是我的虚拟数据: df 1 0.200 a blue 2 1.99 b blue 3 0.663 c blue 4 1.79 d red 5 3.
假设我想根据多个其他变量中的条件创建一个新变量,并且每个变量的条件都相同。我知道我可以使用 case_when(),但我很想知道如果我的条件短语对于每个条件变量都相同,是否可以简化这一步。我还想知道这
我正在尝试检测字符串中是否存在特定的关键字和短语,如果它们存在,我想在新列中发布特定的数字。我的问题是某些字符串有多个关键字,但 case_when 只返回第一个匹配项。有没有办法解决这个问题,或者我
考虑到这是我的数据集 df % mutate( group1_total % group_by(Group) %>% mutate(total = rowSums(sele
考虑到这是我的数据集 df % mutate( group1_total % group_by(Group) %>% mutate(total = rowSums(sele
这失败了: library(tidyverse) myFn 3 ~ letters[1:3], TRUE ~ letters[1:2] ) } myFn(4) # Error: `TRU
我正在尝试根据温度创建许多不同的可能加权方案。 我创建了一个数据框,其中包含 8 个向量的所有可能组合(每个向量代表一个温度范围)。所以数据框的列是特定的温度范围,行是权重。 我想将温度范围作为参数传
这个问题在这里已经有了答案: case_when in mutate pipe (6 个回答) 5年前关闭。 full % mutate(Title = case_when( Title
我有一个大数据框(下面是一个小样本),我需要根据某些条件将所有以相同前缀开头的列转换为多个列,保留原始变量并将原始后缀携带到新变量。 数据: egp % mutate(across(contain
与Tidy evaluation programming with dplyr::case_when有些相关和 Making tidyeval function inside case_when ,我
我按标识符分组(标识符可能有多行),然后尝试使用 group_by 为每个标识符创建一个唯一的行+ summarize与 case_when .这个想法是,如果有 2 行或更多行,则返回单个预设值,否
在进行数据分析时,有时需要将值重新编码为因子以进行组分析。我想保持因子的顺序与 case_when 中指定的转换顺序相同.在这种情况下,订单应该是 "Excellent" "Good" "Fail"
我希望能够使用 dplyr的 case_when以编程方式替换基础 R cut()功能。 目前, case_when 可以通过 NSE 与外部参数一起使用,例如: library(dplyr) lib
我是一名优秀的程序员,十分优秀!