这是可行的:
df <- data.frame(a=c(1,2,3),b=c(4,2,3),c=c(2,5,1))
df %>% summarise(across( c(a,b,c), sum, na.rm=TRUE))
但这不成立,因为d不存在:
df <- data.frame(a=c(1,2,3),b=c(4,2,3),c=c(2,5,1))
df %>% summarise(across( c(a,b,c,d), sum, na.rm=TRUE))
这是一个函数的一部分,然后我用lapply把它应用到一个列表中的一大堆 Dataframe 上,其中d几乎一直存在,所以我不能只删除d。
我想表达的是:
df <- data.frame(a=c(1,2,3),b=c(4,2,3),c=c(2,5,1))
df %>% summarise(across( any_of(c(a,b,c,d)), sum, na.rm=TRUE))
2条答案
按热度按时间lg40wkob1#
您已经接近目标,
any_of
需要一个字符向量:由reprex package(v1.0.0)于2023年1月3日创建
b09cbbtk2#
另一种仅汇总现有数字列的方法: