我有几个列有每个参与者的React时间(RT),这是我的数据框的简化版本(实际上我有20个RT列):
df <- data.frame(id=c(1,1,1,5,5,5), RT_0=c(0.467,NA,0.634,0.416,NA,0.35), RT_1=c(0.3,0.35,0.301,0.267,0.3,0.449), RT_2=c(1.251,NA, 0.334,0.34, 0.317,0.42), RT_3=c(0.284,0.316,0.283,0.367,0.55,0.35),pos=c(1,6,2,4,2,6))
id RT_0 RT_1 RT_2 RT_3 pos
1 0.467 0.3 1.251 0.284 1
1 NA 0.35 NA 0.316 6
1 0.634 0.301 0.334 0.283 2
5 0.416 0.267 0.34 0.367 4
5 NA 0.3 0.317 0.55 2
5 0.35 0.449 0.42 0.35 6
我想通过id计算RT列的总体平均值。例如,1号参与者所有React时间的平均值为0.452。
大概是这样的
id RT_0 RT_1 RT_2 RT_3 pos mean
1 0.467 0.3 1.251 0.284 1 0.452
1 NA 0.35 NA 0.316 6 0.452
1 0.634 0.301 0.334 0.283 2 0.452
5 0.416 0.267 0.34 0.367 4 0.375
5 NA 0.3 0.317 0.55 2 0.375
5 0.35 0.449 0.42 0.35 6 0.375
1条答案
按热度按时间9gm1akwq1#
我们可以按"id"分组,在
across
(或pick
)、unlist
中选择列名为vector
的starts_with
"RT_"的列,并使用mean
获得总体平均值,将其指定为mutate
中的新列或使用
data.table