gpt4 book ai didi

满足条件的特定列的行和

转载 作者:行者123 更新时间:2023-12-03 07:52:40 25 4
gpt4 key购买 nike

我正在尝试对满足某些条件的数据的特定列进行求和,就像下面的例子

library(dplyr)
library(readr)
set.seed(123)
data=data.frame(id=1:4,
v1=sample(c("a","b"),4,TRUE),
v2=sample(c("a","b"),4,TRUE),
v3=sample(c("a","b"),4,TRUE),
v4=sample(c("a","b"),4,TRUE),
v5=sample(c("a","b"),4,TRUE),
v5=sample(c("a","b"),4,TRUE)
)
data%>%
rowwise()%>%
mutate(across(v1:v4,~sum(.x=="a")))%>%
mutate(n_a=sum(c(v1,v2,v3,v4)))
#> # A tibble: 4 × 8
#> # Rowwise:
#> id v1 v2 v3 v4 v5 v5.1 n_a
#> <int> <int> <int> <int> <int> <chr> <chr> <int>
#> 1 1 1 1 1 0 b a 3
#> 2 2 1 0 1 1 a b 3
#> 3 3 1 0 0 0 a a 1
#> 4 4 0 0 0 1 a a 1

这里 n_a 是从 v1 到 v4 的值为 a 的变量之和可以更好地实现我的代码吗?

  • 一个突变系,没有其他变量的转化?
  • 我可以将 sum 与 v1:v4 之类的东西一起使用吗?

创建于 2023 年 7 月 28 日 reprex v2.0.2

最佳答案

您可以将 rowSumspick 一起使用 -

library(dplyr)

data %>%
mutate(n_a = rowSums(pick(v1:v4) == "a", na.rm = TRUE))

# id v1 v2 v3 v4 v5 v5.1 n_a
#1 1 a a a b b a 3
#2 2 a b a a a b 3
#3 3 a b b b a a 1
#4 4 b b b a a a 1

关于满足条件的特定列的行和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76788458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com