根据另一列中的其他ID计算R中一列的平均值
Calculating Average of a Column in R per other IDs in another column
我希望能够计算每只乌龟每天(或每个周期)的平均值 m.HR。我试过使用 summarize = 来计算它,但我只知道如何使用它来计算一个整体的平均值。
这是我的代码:
structure(list(Date = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("2015-05-23", "2015-05-24", "2015-05-25",
"2015-05-26", "2015-05-27", "2015-05-28", "2015-05-29", "2015-05-30",
"2015-05-31", "2015-06-01", "2015-06-02", "2015-06-03", "2015-06-04",
"2015-06-05", "2015-06-06", "2015-06-07", "2015-06-08", "2015-06-09",
"2015-06-10", "2015-06-16", "2015-06-17", "2015-06-18", "2015-06-19",
"2015-06-20", "2015-06-21", "2015-06-22", "2015-06-23", "2015-06-24",
"2015-06-25", "2015-06-26", "2015-06-27", "2015-07-02", "2015-07-03",
"2015-07-04", "2015-07-05", "2015-07-06", "2015-07-07", "2015-07-08",
"2015-07-09", "2015-07-10", "2015-07-11", "2015-07-12", "2015-07-16",
"2015-07-17", "2015-07-18", "2015-07-19", "2015-07-20", "2015-07-21",
"2015-07-22", "2015-07-23", "2015-07-24", "2015-07-25", "2015-07-26",
"2015-07-29", "2015-07-30", "2015-07-31", "2015-08-01", "2015-08-02",
"2015-08-03", "2015-08-04", "2015-08-05", "2015-08-06", "2015-08-07",
"2015-08-08", "2015-08-09", "2015-09-18", "2015-09-19", "2015-09-20",
"2015-09-21", "2015-09-22", "2015-09-23", "2015-09-24", "2015-09-25",
"2015-09-26", "2015-09-27", "2015-09-28", "2015-09-29", "2015-09-30"
), class = "factor"), Turtle = structure(c(3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L), .Label = c("R3L1", "R3L11", "R3L12", "R3L2",
"R3L4", "R3L8", "R3L9", "R4L8", "R8L1", "R8L4", "R8NAT123"), class = "factor"),
m.HR = c(7.56457, 6.66759, 17.51107, 9.72277, 19.44553, 13.07674,
28.115, 14.99467, 17.16947, 40.40479), Cycle = c(1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L)), row.names = c(NA, 10L), class = "data.frame")
最后,应该创建一个新的数据框来显示周期、日期、海龟和每天的平均值 m.HR。
如有任何问题,请告诉我,提前谢谢!!
我想通了!
df <- data %>%
group_by(Turtle, Date) %>%
summarize(Mean.HR = mean(m.HR))
您可以使用包 dplyr
df <- df %>%
group_by(Date, Turtle) %>%
summarise(mean_m.HR = mean(m.HR))
这是一个无需额外软件包即可工作的选项:
aggregate(m.HR ~ Turtle + Date + Cycle, YOUR_DATA, mean)
Returns:
Turtle Date Cycle m.HR
1 R3L12 2015-05-23 1 17.46722
选项data.table
library(data.table)
setDT(df)[, .(mean_m.HR = mean(m.HR, na.rm = TRUE)), .(Date, Turtle)]
我希望能够计算每只乌龟每天(或每个周期)的平均值 m.HR。我试过使用 summarize = 来计算它,但我只知道如何使用它来计算一个整体的平均值。
这是我的代码:
structure(list(Date = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("2015-05-23", "2015-05-24", "2015-05-25",
"2015-05-26", "2015-05-27", "2015-05-28", "2015-05-29", "2015-05-30",
"2015-05-31", "2015-06-01", "2015-06-02", "2015-06-03", "2015-06-04",
"2015-06-05", "2015-06-06", "2015-06-07", "2015-06-08", "2015-06-09",
"2015-06-10", "2015-06-16", "2015-06-17", "2015-06-18", "2015-06-19",
"2015-06-20", "2015-06-21", "2015-06-22", "2015-06-23", "2015-06-24",
"2015-06-25", "2015-06-26", "2015-06-27", "2015-07-02", "2015-07-03",
"2015-07-04", "2015-07-05", "2015-07-06", "2015-07-07", "2015-07-08",
"2015-07-09", "2015-07-10", "2015-07-11", "2015-07-12", "2015-07-16",
"2015-07-17", "2015-07-18", "2015-07-19", "2015-07-20", "2015-07-21",
"2015-07-22", "2015-07-23", "2015-07-24", "2015-07-25", "2015-07-26",
"2015-07-29", "2015-07-30", "2015-07-31", "2015-08-01", "2015-08-02",
"2015-08-03", "2015-08-04", "2015-08-05", "2015-08-06", "2015-08-07",
"2015-08-08", "2015-08-09", "2015-09-18", "2015-09-19", "2015-09-20",
"2015-09-21", "2015-09-22", "2015-09-23", "2015-09-24", "2015-09-25",
"2015-09-26", "2015-09-27", "2015-09-28", "2015-09-29", "2015-09-30"
), class = "factor"), Turtle = structure(c(3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L), .Label = c("R3L1", "R3L11", "R3L12", "R3L2",
"R3L4", "R3L8", "R3L9", "R4L8", "R8L1", "R8L4", "R8NAT123"), class = "factor"),
m.HR = c(7.56457, 6.66759, 17.51107, 9.72277, 19.44553, 13.07674,
28.115, 14.99467, 17.16947, 40.40479), Cycle = c(1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L)), row.names = c(NA, 10L), class = "data.frame")
最后,应该创建一个新的数据框来显示周期、日期、海龟和每天的平均值 m.HR。
如有任何问题,请告诉我,提前谢谢!!
我想通了!
df <- data %>%
group_by(Turtle, Date) %>%
summarize(Mean.HR = mean(m.HR))
您可以使用包 dplyr
df <- df %>%
group_by(Date, Turtle) %>%
summarise(mean_m.HR = mean(m.HR))
这是一个无需额外软件包即可工作的选项:
aggregate(m.HR ~ Turtle + Date + Cycle, YOUR_DATA, mean)
Returns:
Turtle Date Cycle m.HR
1 R3L12 2015-05-23 1 17.46722
选项data.table
library(data.table)
setDT(df)[, .(mean_m.HR = mean(m.HR, na.rm = TRUE)), .(Date, Turtle)]