我尝试使用mean运算符合并数据集的行。 基本上,我想将数据集1转换为数据集2(见下文)
1. ID MEASUREMENT 2. ID MEASURE
A 20 A 22.5
B 30 B 30
A 25 .
. .
. .
如何在R上执行此操作?
请注意,与我在此处给出的示例相比,我的数据集非常大,我无法查看数据集,根据其ID对行进行分组,然后找到colMeans。
我的想法是订购数据集,为每个id分开度量,然后找到每个均值并重新组合数据。但是,这将非常耗时。 如果有人能帮助我使用直接代码甚至是for循环,我真的很感激。
答案 0 :(得分:2)
您也可以在dplyr
中轻松完成此操作,假设您的数据位于df
library(dplyr)
df <- df %>%
group_by(ID) %>%
summarize(MEASURE = mean(MEASUREMENT))
答案 1 :(得分:1)
此代码应该能够为您完成此操作。
library(data.table)
setDT(dat)
dat = dat[ , .(MEASURE = mean(MEASUREMENT)), by = .(ID)]
为了更加完整,我将在基础R中提供一个示例和方法。
数据:
dat = data.frame(ID = c("A","A","A","B","B","C"), MEASUREMENT = c(1:3,61,13,7))
仅使用基本R功能:
aggregate(MEASUREMENT ~ ID, FUN = mean, dat)
ID MEASUREMENT
1 A 2
2 B 37
3 C 7
使用data.table:
library(data.table)
setDT(dat)
dat = dat[ , .(MEASURE = mean(MEASUREMENT)), by = .(ID)]
> dat
ID MEASURE
1: A 2
2: B 37
3: C 7