我有一个数据框,其中包含在不同时间点测量的几个变量(例如test1_tp1
,test1_tp2
,test1_tp3
,test2_tp1
,{{1} },...)。
我现在正尝试使用test2_tp2
向数据框添加新列,该数据框计算这些列的选择上的行方式(例如,dplyr
的所有时间点的平均值)
test1
data %>% ... %>% mutate(test1_mean = mean(test1_tp1, test1_tp2, test1_tp3, na.rm = TRUE)
答案 0 :(得分:7)
您可以使用starts_with
内的select
查找以某个字符串开头的所有列。
data %>%
mutate(test1 = select(., starts_with("test1_")) %>%
rowMeans(na.rm = TRUE))
答案 1 :(得分:3)
以下是如何在dplyr中执行此操作 - 我使用虹膜数据作为示例:
iris %>% mutate(sum.Sepal = rowSums(.[grep("^Sepal", names(.))]))
这计算以“Sepal”开头的所有列的行和。您可以以相同的方式使用rowMeans
代替rowSums
。
答案 2 :(得分:0)
不是dplyr
解决方案,但您可以尝试:
cols_2sum <- grepl('test1',colnames(data))
rowMeans(data[,cols_2sum])