在R中分组、变异和显示预期值的问题

在R中分组、变异和显示预期值的问题,r,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-M

我对分组有问题。我试图对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
数据如下所示:

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列)

我如何才能这样分组?

试试:

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)
days尝试:

days这种方法

  • 天分组
    计算每日平均值
  • 将日平均值与阈值75进行比较,并将结果保存到
    保留日
    ,以及
  • 筛选属于该阈值以上天数的行
即使分数低于阈值,只要是在平均值高于阈值的一天进行的,它们也会显示在箱线图中

library(magrittr)
ds <- structure(list(day = 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"), time = 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"
  ), score = c(25, 54, 34, 28, 38, 48, 36, 25, 34, 4, 59, 22)), row.names = c(NA, 
  -12L), class = c("tbl_df", "tbl", "data.frame"))

ds <- 
  ds %>% 
  dplyr::mutate(
    score  = score * 2
  ) %>% 
  dplyr::group_by(day) %>% 
  dplyr::mutate(
    score_mean_daily    = mean(score),
    keep_day            = (75 < score_mean_daily)
  ) %>% 
  dplyr::ungroup() %>% 
  dplyr::filter(keep_day)

boxplot(ds$score ~ ds$day)
库(magrittr)
ds%
dplyr::分组依据(天)%>%
dplyr::突变(
得分\平均值\每日=平均值(得分),
保持每天=(75分<每日平均分)
) %>% 
dplyr::解组()%>%
dplyr::过滤器(保留日)
箱线图(ds$score~ds$day)
结果:

#一个tible:6 x 5
日时得分得分\u平均值\u每日保持\u日
2015年5月1日15:00 50 75.3真实
2015年5月21日16:00 108 75.3真实
3 01 May 17:00 68 75.3正确
2002年5月4日15:00 56 76真实
5 02 May 16:00 76 76真实
6 02 May 17:00 96 76真实
这种方法

  • 天分组
    计算每日平均值
  • 将日平均值与阈值75进行比较,并将结果保存到
    保留日
    ,以及
  • 筛选属于该阈值以上天数的行
即使分数低于阈值,只要是在平均值高于阈值的一天进行的,它们也会显示在箱线图中

library(magrittr)
ds <- structure(list(day = 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"), time = 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"
  ), score = c(25, 54, 34, 28, 38, 48, 36, 25, 34, 4, 59, 22)), row.names = c(NA, 
  -12L), class = c("tbl_df", "tbl", "data.frame"))

ds <- 
  ds %>% 
  dplyr::mutate(
    score  = score * 2
  ) %>% 
  dplyr::group_by(day) %>% 
  dplyr::mutate(
    score_mean_daily    = mean(score),
    keep_day            = (75 < score_mean_daily)
  ) %>% 
  dplyr::ungroup() %>% 
  dplyr::filter(keep_day)

boxplot(ds$score ~ ds$day)
库(magrittr)
ds%
dplyr::分组依据(天)%>%
dplyr::突变(
得分\平均值\每日=平均值(得分),
保持每天=(75分<每日平均分)
) %>% 
dplyr::解组()%>%
dplyr::过滤器(保留日)
箱线图(ds$score~ds$day)
结果:

#一个tible:6 x 5
日时得分得分\u平均值\u每日保持\u日
2015年5月1日15:00 50 75.3真实
2015年5月21日16:00 108 75.3真实
3 01 May 17:00 68 75.3正确
2002年5月4日15:00 56 76真实
5 02 May 16:00 76 76真实
6 02 May 17:00 96 76真实