首页 > 解决方案 > 在 R 中分组、变异和显示期望值的问题

问题描述

我有分组问题。我正在尝试对 A 列中的值进行分组,同时获取 C 列的每个值并乘以 2,并且对于 A 列中的每个分组值计算平均值,同时,仅从列中选择这些值A 表示平均值高于 75。之后,我想使用将 C 列中的每个值按 B 列分组来显示箱线图。

我只举一个例子。我有这样的数据框:

df=data.frame((cbind(c('01-May', '01-May', '01-May', '02-May', '02-May', '02-May','03-May','03-May','03-May','04-May','04-May','04-May')
      ,c('15:00', '16:00','17:00','15:00','16:00','17:00','15:00','16:00','17:00','15:00' ,'16:00','17:00')
      ,c(25,54,34,28,38,48,36,25,34,04,59,22))))

数据如下所示:

A      B     C
01-May 15:00 25
01-May 16:00 54
01-May 17:00 34
02-May 15:00 28
02-May 16:00 38
02-May 17:00 48
03-May 15:00 36
03-May 16:00 25
03-May 17:00 34
04-May 15:00 04
04-May 16:00 59
04-May 17:00 22

现在我想将 C 列乘以 2。

A      B     C
01-May 15:00 50
01-May 16:00 108
01-May 17:00 68
02-May 15:00 56
02-May 16:00 76
02-May 17:00 96
03-May 15:00 72
03-May 16:00 50
03-May 17:00 68
04-May 15:00 08
04-May 16:00 118
04-May 17:00 44

接下来我想查看每天的计算平均值(A 列),并且只选择平均值高于 75 的那些,所以:

A     C
01-May 75.3
02-May 76

最后,我只想展示那些日子,boxplot(df$B~df$C)看看每小时盒子的样子(B栏)。

我怎么能这样分组?

标签: r

解决方案


尝试:

days <- c('01-May', '01-May', '01-May', '02-May', '02-May', '02-May','03-May','03-May','03-May','04-May','04-May','04-May')
hours <- c('15:00', '16:00','17:00','15:00','16:00','17:00','15:00','16:00','17:00','15:00' ,'16:00','17:00')
scores <- c(25,54,34,28,38,48,36,25,34,04,59,22)

df <- data.frame(days, hours, scores)
df

df <- data.frame(days, hours, scores = scores*2)
df

df <- filter(df, df$scores > 75)
df

boxplot(df$hours, df$scores)

推荐阅读