首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R dplyr::c_across() rowSums中的奇怪行为

R中的dplyr包提供了一个函数c_across(),它可以在rowSums()函数中产生一些奇怪的行为。具体来说,c_across()函数用于在dplyr管道中对多个列进行操作。

在使用rowSums()函数时,如果将c_across()函数用于列选择器,可能会导致奇怪的结果。这是因为rowSums()函数期望接收一个矩阵或数据框作为输入,而c_across()函数返回的是一个列表。

为了解决这个问题,可以使用cur_data()函数将列表转换为数据框,然后再将其传递给rowSums()函数。具体的代码如下:

代码语言:txt
复制
library(dplyr)

# 创建一个示例数据框
df <- data.frame(A = c(1, 2, 3),
                 B = c(4, 5, 6),
                 C = c(7, 8, 9))

# 使用c_across()和rowSums()计算每行的和
df %>%
  rowwise() %>%
  mutate(sum = rowSums(as.data.frame(c_across(everything()))))

在上面的代码中,我们使用c_across()函数选择了所有列,并使用rowSums()函数计算了每行的和。通过将c_across()的结果转换为数据框,我们可以避免奇怪的行为。

需要注意的是,以上答案中没有提及腾讯云相关产品和产品介绍链接地址,因为题目要求不提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券