s<-NULL
for(i in seq(from=1,to=3360,by=240)){
print(i)
s<- rbind(s, data.table(
max(mydata$duration_in_traffic[i:i+239]),
min(mydata$duration_in_traffic[i:i+239]),
mean(mydata$duration_in_traffic[i=i:i+239]),
median(mydata$duration_in_traffic[i:i+239])))
}
我试图通过for循环在表中保存max,min,mean和median来进行各种观察,但是在每次观察中它返回相同的值到max,min,mean和median。
答案 0 :(得分:0)
以下是使用iris数据的dplyr
包的方法,例如:
iris$gp <- findInterval(1:nrow(iris), seq(1, nrow(iris), 40)) # create a grouping variable for every 40 observations of iris data
iris %>%
group_by(gp) %>%
summarise_at(vars(Petal.Length), funs(max, min, mean, median))
# # A tibble: 4 × 5
# gp max min mean median
# <int> <dbl> <dbl> <dbl> <dbl>
# 1 1 1.9 1.0 1.460000 1.50
# 2 2 5.0 1.3 3.617500 4.15
# 3 3 6.9 3.0 4.902500 4.85
# 4 4 6.7 4.8 5.483333 5.55
在你的情况下,这应该有效:
s$gp <- findInterval(1:nrow(iris), seq(1, 3360, 240))
s %>%
group_by(gp) %>%
summarise_at(vars(duration_in_traffic), funs(max, min, mean, median))