将列集合乘以R中数据帧中的一列

将列集合乘以R中数据帧中的一列,r,dplyr,R,Dplyr,我知道我可以使用mutate Cross将一列乘以其他特定列,如下所示: mtcars %>% mutate(across(disp),.*carb) 在我的数据中,我的两个变量都是数字: > str(trad_clean_weighted$Q10_1) num [1:1024] NA NA 0 1 NA 0 0 NA 1 1 ... - attr(*, "label")= chr "Q10_1.Dance assessed and reporte

我知道我可以使用mutate Cross将一列乘以其他特定列,如下所示:

mtcars %>% mutate(across(disp),.*carb)
在我的数据中,我的两个变量都是数字:

> str(trad_clean_weighted$Q10_1)
 num [1:1024] NA NA 0 1 NA 0 0 NA 1 1 ...
 - attr(*, "label")= chr "Q10_1.Dance assessed and reported via report card"
> str(trad_clean_weighted$wgt_part1B)
 num [1:1024] 9.73 1.9 3.09 3.1 21.42 ...
但是,当我尝试将列相乘时,会出现此错误:

my_data %>%
mutate(across(Q10_1),.*wgt_part1B)

Error: Problem with `mutate()` input `..2`.
x non-numeric argument to binary operator
i Input `..2` is `. * wgt_part1B`.
当两个变量都是数字时,我不明白为什么会出现此错误!:(


有什么想法吗?

这是因为跨列的
在列名之后关闭了

my_data %>%
        mutate(across(Q10_1, ~ . * wgt_part1B))
如果存在列名向量,请在跨

nm1 <- c('Q10_1', 'Q10_2')
my_data %>%
   mutate(across(all_of(nm1), ~ .* wgt_part1B))
 my_data %>%
      mutate(Q10_1 = Q10_1 * wgt_part1B)

我实际上是在乘以一个包含几个列的向量……很抱歉这个糟糕的例子,我会修正我的帖子来反映这一点。