我在R中有一个较大的数据框,我想绘制温度随时间的变化。我以前曾尝试过此方法,但由于有太多数据,所以该图确实很吵,无法读取。
我尝试了其他类型的图来尝试解决此问题,但是它们并没有真正起作用。因此,我决定改为绘制每个小时的平均温度。
我已经从一个csv文件中上传了数据,大约有56,000行,一个小时大约是720行。
> head(wormData)
Time Date Day.of.Week Humidity.1 Temp.1 Vapor.Density.1 Base.Temp.1
1 0:18:44 1/7/2016 Friday 69.7 26.4 17.43 85.00
2 0:18:49 1/7/2016 Friday 69.7 26.4 17.43 27.44
3 0:18:54 1/7/2016 Friday 69.6 26.4 17.40 27.44
4 0:18:59 1/7/2016 Friday 69.6 26.4 17.40 27.44
5 0:19:05 1/7/2016 Friday 69.5 26.4 17.38 27.44
6 0:19:10 1/7/2016 Friday 69.5 26.4 17.38 27.44
我感兴趣的列是Temp.1,所以我想做的是取Temp.1列中每720个值的平均值,然后将每个平均值放入一个新的数据框中,以便绘制更清晰的图。
我想到只需要手动操作,但这大约需要50个数据点,而且我还有很多csv文件需要执行,因此,我对如何执行此操作提供了任何帮助,我们将不胜感激。我试着用平均值对数据进行子集化或向量化,并编写了一些循环,但是我很难告诉R我想要每720行的平均值。
非常感谢 :)
在以下基础之上的一种基本解决方案matrix
:
set.seed(123)
x<-sample(1:10,(720*5),replace=TRUE) # generate dummy data
> str(x)
int [1:3600] 3 8 5 9 10 1 6 9 6 5 ...
# Use wormData$Temp.1 instead of x for your actual datas
z<-matrix(x,nrow=length(x)/719) # divide by 719 to get 720 values per row
rowMeans(z) # 'loop' over each row to get the mean
输出:
[1] 5.654167 5.375000 5.358333 5.477778 5.618056
如果您的数据集不是720的倍数,则会收到警告,最后一点将为假(回收向量以填充最后一行)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句