R 如何使用ggplot绘制由多个列分组的观测值的平均值?

R 如何使用ggplot绘制由多个列分组的观测值的平均值?,r,R,假设我有一个数据帧: date ID times value 1 B048669 1 41 2 B048669 1 29 3 B048669 1 37 4 B048669 1 31 5 B048669 1 NA 6 B048669 1 23 1 Y2929021 1 43 2 Y2929021 1 10 3 Y2929021 1 NA 4 Y2929021

假设我有一个数据帧:

date ID times value
1   B048669    1    41
2   B048669    1    29
3   B048669    1    37
4   B048669    1    31
5   B048669    1    NA
6   B048669    1    23
1  Y2929021    1    43
2  Y2929021    1    10
3  Y2929021    1    NA
4  Y2929021    1    NA
5  Y2929021    1    29
6  Y2929021    1    NA
1  Y2929021    2    43
2  Y2929021    2    NA
3  Y2929021    2    15
4  Y2929021    2    3
5  Y2929021    2    29
6  Y2929021    2    NA
我想计算按ID和时间分组的每一天的平均值。然后x=日期,y=值。
第一个点是x=1,y=(41+43+43)/3,第二个点是x=2,y=(29+10+NA)/2。 使用
dplyr

df <- df %>%
    group_by(ID, times) %>% 
    summarize(mean = mean(value))
df%
分组依据(ID,次数)%>%
汇总(平均值=平均值)

然后调用带有映射的
ggplot
plot
aes(y=median)
和您想要映射的
ID
时间的任何美学。在调用
ggplot
之前,您可能需要计算平均值。 使用
dplyr

df <- df %>%
    group_by(ID, times) %>% 
    summarize(mean = mean(value))
df%
分组依据(ID,次数)%>%
汇总(平均值=平均值)

然后调用
ggplot
plot和映射
aes(y=median)
以及您想要映射
ID
时间的任何美学对象。

您应该使用包dplyr来聚合数据,并使用ggplot2来绘制它(从)。总的来说,tidyverse值得一读,因为它有难以置信的强大和易于使用的软件包。假设您的数据位于数据帧
df

require(dplyr)
require(ggplot2)

aggregated_df <-
  df %>%
  group_by(date) %>%
  summarize(value = mean(value,na.rm=TRUE))

ggplot(aggregated_df, aes(x = date, y = value)) + geom_col()
require(dplyr)
需要(ggplot2)
聚合_df%
分组单位(日期)%>%
汇总(值=平均值(值,na.rm=真))
ggplot(聚合的df,aes(x=日期,y=值))+geom\U col()
默认绘图并不特别吸引人,但您可以根据自己的喜好修改样式:


您应该使用软件包dplyr来聚合数据,并使用ggplot2来绘制数据(从)。总的来说,tidyverse值得一读,因为它有难以置信的强大和易于使用的软件包。假设您的数据位于数据帧
df

require(dplyr)
require(ggplot2)

aggregated_df <-
  df %>%
  group_by(date) %>%
  summarize(value = mean(value,na.rm=TRUE))

ggplot(aggregated_df, aes(x = date, y = value)) + geom_col()
require(dplyr)
需要(ggplot2)
聚合_df%
分组单位(日期)%>%
汇总(值=平均值(值,na.rm=真))
ggplot(聚合的df,aes(x=日期,y=值))+geom\U col()
默认绘图并不特别吸引人,但您可以根据自己的喜好修改样式:


从您的示例输出中,我看不出
ID
时间
有什么关系
DF%>%groupby(date)%%>%summary(x=date,y=mean(value,na.rm=TRUE))
@StephenHenderson你是对的,我犯了一个错误。从你的示例输出中,我根本看不出
ID
时间
有什么关系
DF%>%group_by(date)%%>%summary(x=date,y=mean(value,na.rm=TRUE))
@StephenHenderson你是对的,我犯了一个错误。这不会产生上述输出。不清楚示例数据或描述是否有缺陷。抱歉,我弄错了。我想要的答案在上面,谢谢!这不会产生上述输出。不清楚示例数据或描述是否有缺陷。抱歉,我弄错了。我想要的答案在上面,谢谢!