gpt4 book ai didi

r - 使用名称向量和 dplyr::mutate 中的计算向量创建多个新变量

转载 作者:行者123 更新时间:2023-12-02 18:12:40 24 4
gpt4 key购买 nike

我想创建几个新列。它们应该从一个向量中获取名称,并且应该通过获取数据中的一列并将其除以另一列来计算它们。

mytib <- tibble(id = 1:2, value1 = c(4,6), value2 = c(42, 5), total = c(2,2))
myvalues <- c("value1", "value2")
mynames <- c("value1_percent", "value2_percent")

mytib %>%
mutate({{ mynames }} := {{ myvalues }}/total)

在这里,我收到错误消息,这让我认为 curl 运算符放错了位置

Error in local_error_context(dots = dots, .index = i, mask = mask) : promise already under evaluation: recursive default argument reference or earlier problems?

我想以编程方式计算百分比列(因为我的数据中有很多这样的列)。

所需的输出应与此等效:

mytib %>%
mutate( "value1_percent" = value1/total, "value2_percent" = value2/total)

这给出了

# A tibble: 2 × 6
id value1 value2 total value1_percent value2_percent
<int> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 4 42 2 2 21
2 2 6 5 2 3 2.5

最佳答案

您可以使用 across 并在其 .names 参数中构造新名称:

library(dplyr)

mytib %>%
mutate(across(starts_with('value'),
~ .x / total,
.names = "{.col}_percent"
))

关于r - 使用名称向量和 dplyr::mutate 中的计算向量创建多个新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72053806/

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