在R中分组、变异和显示预期值的问题
我对分组有问题。我试图对A列中的值进行分组,同时得到C列中的每个值并乘以2,对A列中的每个分组值计算平均值,同时只选择A列中平均值高于75的值。在这之后,我想通过将C列中的每个值按B列分组来显示箱线图 我只举个例子。我有这样的数据帧:在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
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真实