【发布时间】:2018-09-26 07:03:30
【问题描述】:
我有一个 dataframe,其中有很多类似这样的列:
data <- data.frame (a.1 = 1:5, a.2b = 3:7, a.5 = 5:9, bt.16 = 4:8, bt.12342 = 7:11)
我想要一个包含对具有相同前缀的变量求和的列的结果。在这个例子中,我想返回一个数据框: a = (9:13), bt = (11:15)
我的真实数据集相当复杂(我想结合具有不同 utm 参数的网页的页面查看次数),但这种情况的解决方案应该让我走上正轨。
【问题讨论】:
-
“具有相同前缀的变量”是什么意思?
-
这行得通吗?
library(magrittr); lapply(c("a","bt"), function(x) rowSums(data[, grepl(x, names(data))])) %>% setNames(., c("a","bt")) %>% data.frame -
您是否尝试过
select(data, starts_with("prefix"))之类的tidyverse函数? -
要添加到迈克的答案,您可能需要
startsWith(names(data), x)]而不是grepl(x, names(data))