- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑到这是我的数据集
df <-
structure(list(id = 1:6, w = c(NA, 11L, 12L, 13L, 14L, 15L),
x = c(20L, 21L, NA, 23L, 24L, 25L), y = c(30L, 31L, 32L,
NA, 34L, 35L), z = c(40L, NA, 42L, 43L, 44L, NA), Group = c("Group1",
"Group2", "Group2", "Group2", "Group3", "Group3")), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
id w x y z Group
1 NA 20 30 40 Group1
2 11 21 31 NA Group2
3 12 NA 32 42 Group2
4 13 23 NA 43 Group2
5 14 24 34 44 Group3
6 15 25 35 NA Group3
我正在尝试按组逐行对 w、x、y、z 列的观察值求和。我正在使用这样的 case_when
语句。
df <- df %>%
mutate(
group1_total <- case_when( Group = "Group1" ~ rowSums(w,x, na.rm = TRUE)),
group2_total <- case_when( Group = "Group2" ~ rowSums(w,x,z, na.rm = TRUE)),
group3_total <- case_when( Group = "Group3" ~ rowSums(w,x,y,z, na.rm = TRUE))
)
我收到一条错误消息,rowSums()
出错。不确定我做错了什么。非常感谢任何建议或帮助,谢谢。
最佳答案
我会创建一个命名列表,我们在其中指定要为每个组求和的变量。
cur_data()
返回当前组的数据,group_cols[[unique(Group)]]
为每个组选择合适的列。
library(dplyr)
group_cols <- list('Group1' = c('w', 'x'), 'Group2' = c('w', 'x', 'z'),
'Group3' = c('w', 'x', 'y', 'z'))
df %>%
group_by(Group) %>%
mutate(total = rowSums(select(cur_data(),
group_cols[[unique(Group)]]), na.rm = TRUE)) %>%
ungroup
# id w x y z Group total
# <int> <int> <int> <int> <int> <chr> <dbl>
#1 1 NA 20 30 40 Group1 20
#2 2 11 21 31 NA Group2 32
#3 3 12 NA 32 42 Group2 54
#4 4 13 23 NA 43 Group2 79
#5 5 14 24 34 44 Group3 116
#6 6 15 25 35 NA Group3 75
这样做的好处是计算是按组而不是按行进行的。
关于r rowSums in case_when,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73761234/
我想知道我在这里做错了什么。。我尝试结合使用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
我是一名优秀的程序员,十分优秀!