gpt4 book ai didi

rowwise() 与 dplyr 中的列名向量求和

转载 作者:行者123 更新时间:2023-12-04 11:18:13 25 4
gpt4 key购买 nike

我再次对如何实现这一目标感到困惑:
鉴于此数据框:

df <- tibble(
foo = c(1,0,1),
bar = c(1,1,1),
foobar = c(0,1,1)
)
这个向量:
to_sum <- c("foo", "bar")
我想获得列中值的行式总和 to_sum .
期望的输出:
# A tibble: 3 x 4
# Rowwise:
foo bar foobar sum
<dbl> <dbl> <dbl> <dbl>
1 1 1 0 2
2 0 1 1 1
3 1 1 1 2
输入它是有效的(显然)。
df %>% rowwise() %>% 
mutate(
sum = sum(foo, bar)
)
这不会:
df %>% rowwise() %>% 
mutate(
sum = sum(to_sum)
)
我理解,因为如果我要尝试:
df %>% rowwise() %>% 
mutate(
sum = sum("foo", "bar")
)
如何从列名向量计算行式总和?

最佳答案

我认为您正在寻找 rlang::syms将字符串强制为 quosures:

library(dplyr)
library(rlang)
df %>%
rowwise() %>%
mutate(
sum = sum(!!!syms(to_sum))
)
# foo bar foobar sum
# <dbl> <dbl> <dbl> <dbl>
# 1 1 1 0 2
# 2 0 1 1 1
# 3 1 1 1 2

关于rowwise() 与 dplyr 中的列名向量求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68443594/

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