在R中使用粘贴跨调用的列应用mutate

在R中使用粘贴跨调用的列应用mutate,r,R,我想在dplyr中使用mutate跨数据帧中的列应用一个函数。我想引用使用粘贴的列 以下是示例数据,但实际数据集有许多列构成粘贴功能键: data <- data.frame(var1 = c(1:4), var2 = (5:8)) data var1 var2 1 1 5 2 2 6 3 3 7 4 4 8 在这里,我们不需要一个行,因为行和会更有效 library(dplyr) data %>% mutate(to

我想在dplyr中使用mutate跨数据帧中的列应用一个函数。我想引用使用粘贴的列

以下是示例数据,但实际数据集有许多列构成粘贴功能键:

data <- data.frame(var1 = c(1:4), var2 = (5:8))
data
  var1 var2
1    1    5
2    2    6
3    3    7
4    4    8

在这里,我们不需要一个
,因为
行和
会更有效

library(dplyr)
data %>% 
     mutate(total = rowSums(.))
或者对于列的子集(使用
粘贴
),我们
选择它们并使用
行和

data %>% 
    mutate(total = select(., paste0('var', 1:2)) %>% 
              rowSums)

如果我们需要使用列名,请选择
c_中跨
的数据集列,并获取
总和
(在
行后

或者使用
paste
c\u中选择跨

data %>%
   rowwise %>%
   mutate(total = sum(c_across(paste0('var', 1:2)))) %>%
   ungroup
# A tibble: 4 x 3
#  var1  var2 total
#  <int> <int> <int>
#1     1     5     6
#2     2     6     8
#3     3     7    10
#4     4     8    12

在这里,我们不需要一个
,因为
行和
会更有效

library(dplyr)
data %>% 
     mutate(total = rowSums(.))
或者对于列的子集(使用
粘贴
),我们
选择它们并使用
行和

data %>% 
    mutate(total = select(., paste0('var', 1:2)) %>% 
              rowSums)

如果我们需要使用列名,请选择
c_中跨
的数据集列,并获取
总和
(在
行后

或者使用
paste
c\u中选择跨

data %>%
   rowwise %>%
   mutate(total = sum(c_across(paste0('var', 1:2)))) %>%
   ungroup
# A tibble: 4 x 3
#  var1  var2 total
#  <int> <int> <int>
#1     1     5     6
#2     2     6     8
#3     3     7    10
#4     4     8    12

太棒了,谢谢你!我应该在头撞到这几个小时之前问一下太棒了,谢谢你!我应该在头撞到这几个小时之前问一下
data %>%
   rowwise %>%
   mutate(total = sum(c_across(paste0('var', 1:2)))) %>%
   ungroup
# A tibble: 4 x 3
#  var1  var2 total
#  <int> <int> <int>
#1     1     5     6
#2     2     6     8
#3     3     7    10
#4     4     8    12
data %>%
   rowwise %>%
   mutate(totall = sum(cur_data()[paste0('var', 1:2)])) %>%
   ungroup
# A tibble: 4 x 3
#   var1  var2 totall
#  <int> <int>  <int>
#1     1     5      6
#2     2     6      8
#3     3     7     10
#4     4     8     12