gpt4 book ai didi

r - R中的数据表解决方案以查找组最小值/最大值

转载 作者:行者123 更新时间:2023-12-01 21:47:01 25 4
gpt4 key购买 nike

数据

data=data.frame("student"=c(1,1,1,2,2,2,3,3,3),
"score"=c(NA,7,6,6,1,4,8,NA,3),
"min"=c(6,6,6,1,1,1,3,3,3),
"max"=c(7,7,7,6,6,6,8,8,8))

我有“学生”和“分数”列,并希望使用 data.table 创建“最小值”和“最大值”,简单地说就是每个学生忽略 NA 值的最小值和最大值。如果所有值都是 NA,则只需将“NA”列为最小值/最大值。

最佳答案

使用data.table

library(data.table)

setDT(data)
data[, c("min", "max"):= list(min(score, na.rm = TRUE),
max(score, na.rm = TRUE)), student]
data
# student score min max
#1: 1 NA 6 7
#2: 1 7 6 7
#3: 1 6 6 7
#4: 2 6 1 6
#5: 2 1 1 6
#6: 2 4 1 6
#7: 3 8 3 8
#8: 3 NA 3 8
#9: 3 3 3 8

或者用dplyr

library(dplyr)
data %>%
group_by(student) %>%
mutate(min = min(score, na.rm = TRUE), max = max(score, na.rm = TRUE))

关于r - R中的数据表解决方案以查找组最小值/最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60272236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com