R 输出列表示任意数量的列
我已附上。每列表示探测器每隔半小时收集的每日数据。我想在CSV文件中输出每个探测器的每日平均值。到目前为止,我有以下代码R 输出列表示任意数量的列,r,R,我已附上。每列表示探测器每隔半小时收集的每日数据。我想在CSV文件中输出每个探测器的每日平均值。到目前为止,我有以下代码 sink('d2.csv') x<-1 y<-48 for(i in 1:123) { W=E.2.[x:y] M=mean(W) print(M) x<-x+48 y<-y+48 } sink() 如果不了解更多关于数据结构的信息以及您要做的事情,就很难确定,但是通过使用该函数,您需要的所有内容都可以放在两行
sink('d2.csv')
x<-1
y<-48
for(i in 1:123) {
W=E.2.[x:y]
M=mean(W)
print(M)
x<-x+48
y<-y+48
}
sink()
如果不了解更多关于数据结构的信息以及您要做的事情,就很难确定,但是通过使用该函数,您需要的所有内容都可以放在两行代码中(假设
df
是您的数据帧的名称):
编辑时:我使用了
by=4
,因为您的代码有类似x的行。如果需要进一步帮助,请制作一个可复制的示例。例如,粘贴dput(df)
的结果,或者如果前者太大,则粘贴dput(head(df))
。时间戳E.2.E.3.E.4.E.5.E.6.E.7.E.8.E.9.E.10.E.11.E.12.E.13。1 3/16/2013 0:00 108.1 166.4 238.41 261.2 373.5 324.27 278.94 514.2 629.8 607.9 334.9 323.59 2 3/16/2013 0:30 109.5 165.6 237.4 261.19 367.1 324.2 278.53 513.2 631.8 609.3 335 323.19 3 3/16/2013 1:00 110.6 165.5 236.48 261.17 368.1 324.2 278.13 512.4 631.2 609.3 335 323.56 4 3/16/2013 1:30 111.4 165.6 235.69 261.13 375.1 324.2 277.49 511.6 629.1 606.6 335.2 323.5 5 5 3/16/2013 2:00 112.2 165.7 234.88 261.09 379.6 324.21 276.85 510.6 629.5 607.3 335.3 323.67谢谢John的及时回复。我附上了你要求的数据,希望不要太乱!这很有帮助,但理想情况下,它应该被编辑到问题本身中,并且具有读者可以直接复制粘贴到R中的特性。您仍然需要像read.table()
这样的东西dput
的好处是它提供了一个可直接粘贴的副本。安装了zoo,但您的建议不起作用。我已经在最初的问题中粘贴了数据,以查看这是否有助于您提出建议。我尝试使用以下方法安装zoo,但它不起作用>install.packages(“zoo_1.6-4.tar.gz”,repos=NULL);警告:无效的软件包'zoo_1.6-4.tar.gz'错误:错误:安装中未指定软件包警告。软件包:运行命令'C:/Users/clahiri/DOCUME~1/R/R-34~1.2/bin/x64/R“CMD install-l”C:\Users\clahiri\Documents\R\R-3.4.2\library“zoo_1.6-4.tar.gz”install.packages中的'had status 1 Warning:安装包'zoo_1.6-4.tar.gz'的退出状态为非零zoo
是一个标准的CRAN包:可能您正在尝试安装包的旧版本。RStudio对于轻松安装软件包非常有用。我将文档链接更改为指向当前版本。我安装了该软件包,但无法使脚本正常工作!原始问题确实有数据的屏幕截图。你所说的“无法使脚本工作”是什么意思?我能够根据您提供的数据让它工作(使用宽度为3的滑动窗口,步幅为by=2
),它对我有效。如果对你不起作用,就说怎么做。你有错误吗?如果是,有哪些错误?没有错误,但不是您想要的结果?
TIMESTAMP E.2. E.3. E.4. E.5. E.6. E.7. E.8. E.9. E.10. E.11. E.12. E.13.
1 3/16/2013 0:00 108.1 166.4 238.41 261.2 373.5 324.27 278.94 514.2 629.8 607.9 334.9 323.59
2 3/16/2013 0:30 109.5 165.6 237.4 261.19 367.1 324.2 278.53 513.2 631.8 609.3 335.0 323.19
3 3/16/2013 1:00 110.6 165.5 236.48 261.17 368.1 324.2 278.13 512.4 631.2 609.3 335.0 323.56
4 3/16/2013 1:30 111.4 165.6 235.69 261.13 375.1 324.2 277.49 511.6 629.1 606.6 335.2 323.5
5 3/16/2013 2:00 112.2 165.7 234.88 261.09 379.6 324.21 276.85 510.6 629.5 607.3 335.3 323.67
6 3/16/2013 2:30 112.3 166.2 234.3 261.09 378.2 324.21 276.38 509.9 630.7 607.6 335.6 323.88
library(zoo)
write.csv(rollapply(df[,-1],48,mean,by = 4),"d2.csv")
write.csv(rollapply(df[,-1],48,mean,by = 48),"d2.csv")