[英]add column with row wise mean over selected columns using dplyr
我有一個數據框,其中包含幾個在不同時間點測量的變量(例如, test1_tp1
, test1_tp2
, test1_tp3
, test2_tp1
, test2_tp2
,...)。
我現在嘗試使用dplyr
向數據框添加一個新列,該數據框計算這些列的選擇上的行方式(例如, test1
所有時間點的平均值)。
data %>% ... %>% mutate(test1_mean = mean(test1_tp1, test1_tp2, test1_tp3, na.rm = TRUE)
data %>% ... %>% mutate(test1_mean = mean(matches("test1_.*"), na.rm = TRUE)
您可以在select
使用starts_with
來查找以某個字符串開頭的所有列。
data %>%
mutate(test1 = select(., starts_with("test1_")) %>%
rowMeans(na.rm = TRUE))
以下是如何在dplyr中執行此操作 - 我使用iris數據作為示例:
iris %>% mutate(sum.Sepal = rowSums(.[grep("^Sepal", names(.))]))
這將計算以“Sepal”開頭的所有列的行和。 您可以以相同的方式使用rowMeans
而不是rowSums
。
不是dplyr
解決方案,但您可以嘗試:
cols_2sum <- grepl('test1',colnames(data))
rowMeans(data[,cols_2sum])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.