Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过r中的for循环保存表中的最大、最小平均中位数 s_R_Loops_For Loop - Fatal编程技术网

通过r中的for循环保存表中的最大、最小平均中位数 s

通过r中的for循环保存表中的最大、最小平均中位数 s,r,loops,for-loop,R,Loops,For Loop,以下是如何使用dplyr包,以iris数据为例: 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:

以下是如何使用
dplyr
包,以iris数据为例:

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])))
}
iris$gp%
分组依据(gp)%>%
总结(变量(花瓣长度)、funs(最大值、最小值、平均值、中值))
##A tible:4×5
#最大最小平均中位数
#           
# 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
在您的情况下,这应该有效:

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%
分组依据(gp)%>%
总结交通流量(VAR(持续时间)、funs(最大、最小、平均、中位数))

您需要改进问题的格式,并花更多的时间考虑。顺便说一句,您的方法没有问题。只是您可能需要创建一个空的data.frame,其中包含4列(用于max、min、mean和median),以及用于循环的i值的i行。您当前的代码只会根据循环的最后一个i值为您提供对象s,这将覆盖先前i值的data.frame。我得到所有值的s,不仅仅是i的最后一个值,但问题是,当我为例如输入值时,它无法读取max,min函数中的“i”。[1:240]它给出了正确的答案,但不是[i,i+239]。
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))