当我从列表中获取列名时,dplyr summarise将不起作用的原因是,dplyr summarise函数要求列名是直接指定的,而不是通过变量或列表获取的。这是因为dplyr在解析和优化查询时需要明确的列名信息。
解决这个问题的方法是使用dplyr的across函数结合tidyselect包中的all_of函数来动态选择列。通过将列名包装在all_of函数中,可以将列表中的列名作为参数传递给across函数,从而实现对列的操作。
下面是一个示例代码:
library(dplyr)
library(tidyselect)
# 列名列表
column_names <- c("col1", "col2", "col3")
# 创建数据框
df <- data.frame(col1 = 1:5, col2 = 6:10, col3 = 11:15)
# 使用across和all_of进行列操作
df <- df %>%
summarise(across(all_of(column_names), mean))
# 输出结果
print(df)
在上述代码中,我们首先将列名存储在一个列表中。然后,我们使用all_of函数将列名列表作为参数传递给across函数,以选择需要操作的列。最后,我们使用summarise函数对选定的列进行求均值操作。
推荐的腾讯云相关产品:腾讯云云服务器(CVM),腾讯云数据库(TencentDB),腾讯云对象存储(COS),腾讯云人工智能(AI),腾讯云物联网(IoT),腾讯云区块链(BC),腾讯云音视频处理(VOD),腾讯云移动开发(Mobile),腾讯云网络安全(Security)等。您可以访问腾讯云官方网站了解更多产品信息和详细介绍。
腾讯云官方网站链接:https://cloud.tencent.com/
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云