使用“循环”按R中的行对数据进行子集;至于;

使用“循环”按R中的行对数据进行子集;至于;,r,for-loop,subset,mean,R,For Loop,Subset,Mean,我有7列21行的数据,我想创建for循环。 我想计算前10行数据中第一列的平均值。然后我想计算第二个平均值,从2到11行,然后从3到12行,最后从11到20行。我试图通过以下代码实现这一点: sredniaa <- array(0, 11) for(j in 1:11) { sredniaa[j]<-mean(wartdop1[j:j+9,1]) } sredniaa欢迎使用堆栈溢出。请花点时间阅读。花点时间把你的代码格式和打字错误弄出来,这样人们会花点时间来回答。如果你对共

我有7列21行的数据,我想创建for循环。 我想计算前10行数据中第一列的平均值。然后我想计算第二个平均值,从2到11行,然后从3到12行,最后从11到20行。我试图通过以下代码实现这一点:

sredniaa <- array(0, 11)

for(j in 1:11) {
  sredniaa[j]<-mean(wartdop1[j:j+9,1])
}

sredniaa欢迎使用堆栈溢出。请花点时间阅读。花点时间把你的代码格式和打字错误弄出来,这样人们会花点时间来回答。如果你对共享数据没意见,粘贴
dput(wartdop1)
的结果会让人们更容易处理。你有没有看一看,特别是@Henriks评论,它还有两个其他的功能links@alistaire当然可以!哎呀。显然,我的意思是使用
rollmean
而不是
rollapply
<代码>滚动平均值(wartdop1[,1],宽度=10,部分=F)
。如果你想把这个应用到每一列<代码>应用(wartdop1,2,rollmean,width=10,partial=F)您的代码没有错,您只缺少了几个括号:
[j:j+9,1]
应该是
[j:(j+9),1]