在表中通过for循环保存max,min表示平均值

时间:2017-06-01 07:48:51

标签: r loops for-loop

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。

enter image description here

1 个答案:

答案 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))