时间:2021-03-27来源:www.pcxitongcheng.com作者:电脑系统城
R语言求一个列表的平均数可以使用mean() :
mean英文意思有平均数的含义
1 2 3 |
x=c(1,3,5,7,9) max(x) #这样即可求得平均数为 : 5 |
假如读取过一个csv文件之后,要求其中一行数据中指定某个区间内的平均数可以使用rowMeans()
1 2 |
data = read .csv(“input.csv ",sep=" ,",header=T) rowMeans(data[10:17]) |
补充:R语言-数据框分组求平均值
【技术关键】
1、从excel把数据读到数据框
2、算法实现将数据框的一些数据合为新的数据并组成新的数据框
3、将处理结果,即新的数据框保存到excel文件(或.csv)
4、将绘图结果输出到PDF文件保存
最近在尝试分析近日的环境温湿度变化;
虽然设备只运行了48小时左右;
但收集到的有效数据有30000+(当然对于R而言这算很小意思的了);
由于环境温湿度在一小段时间内基本保持稳定;
所以在分析几日内的温湿度变化情况时可以以每10min为单位记录数据;
这就需要一个脚本,能将数据有效划分为单位后求均值再保存到表;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
################################################### # - Filename : washData.R # - Author : Johan Version : 1.0 Date : 2018/5/3 # - Discription : 将excel表中的数据分10min计算平均值 # 并保存到excel # - Function list : # 1. # - Others : # 1.本程序可分析.xls或.csv文件 ################################################### # 引用包 library(RODBC) # 设置工作目录 setwd( "H:/mySoftware/R/myData" ) # 导入数据到myDataFrame,文件名根据需要改变 # 打开th_record2.xls,并读取表Sheet1 channel <- odbcConnectExcel2007( "th_record2.xls" ) myDataFrame <- sqlFetch(channel, "Sheet1" ) odbcClose(channel) # 为myDataFrame增加列名 dataColName <- c( "temp" , "humi" , "time" , "year" , "month" , "day" , "hour" , "minute" , "second" ) names(myDataFrame) <- dataColName # 初始化缓存向量 # 时分秒为起始量,可修改 NUM <- c() # 编号 TEMP <- c() # 温度 HUMI <- c() # 湿度 t <- 0 # 温度缓存 h <- 0 # 湿度缓存 num <- 0 # 编号缓存 dn <- 0 # 计数器 flag <- FALSE # 保存指示 # 循环处理数据 for (i in 1 : 31600){ # 当前分钟是否为10的倍数 if (myDataFrame$minute[i] %% 10 == 0){ # 计算上一组数据的均值并保存 if (flag){ t <- t / dn h <- h / dn TEMP <- c(TEMP, t) HUMI <- c(HUMI, h) num <- num + 1 NUM <- c(NUM, num) flag <- FALSE } # 缓存复位 dn <- 0 t <- 0 h <- 0 # 添加记录 t <- t + myDataFrame$temp[i] h <- h + myDataFrame$humi[i] dn <- dn + 1 } else { # 添加记录 t <- t + myDataFrame$temp[i] h <- h + myDataFrame$humi[i] dn <- dn + 1 flag <- TRUE } } # 构建新数据框 newFrame <- data.frame(NUM, TEMP, HUMI) newName <- c( "number" , "temp" , "humi" ) names(newFrame) <- newName # 写入.csv文件 write.csv(newFrame, "new_th_record.csv" ) # 绘图 plot(newFrame$number, newFrame$temp, pch=20, lty=3, col= "red" ) lines(newFrame$number, newFrame$humi, pch=20, lty=3, col= "blue" ) |
把处理结果保存到新的.csv或者.xls文件即是整个脚本的目的所在,方便后面的数据分析。
运行后得到的效果如下:(由于温湿度的数值不在一个层次所以反映得不太直观,可尝试调换plot和lines的顺序,通过绘图方面的学习可以画出更好看的图)
如果想要输出为PDF保存该图片,可以运行另一个脚本:
1 2 3 4 |
pdf( "new_th_record.pdf" ) plot(newFrame$number, newFrame$humi, pch=20, lty=3, col= "blue" ) lines(newFrame$number, newFrame$temp, pch=20, lty=3, col= "red" ) dev.off() |
PDF文件的一个好处就是它里面的图片是矢量的,也就是说放大图片不会改变图片的原样,原本看上去粘在一块儿的点放大以后能看出来是分开的。
2024-04-11
台式机电脑如何连接外接显示器2024-04-11
小新系列打印机手机配置网络的方法教程2024-04-11
Thinkpad 笔记本F1-F12快捷键分别是什么功能ThinkPad蓝牙鼠标如何配对解答步骤41U5008鼠标驱动官网地址: https://support.lenovo.com/en_US/downloads/detail.page?&LegacyDocID=MIGR-67201 第一种方式是比较传统的:使...
2024-04-11
故障现象: USB设备U盘、移动硬盘等插入后提示无法识别的设备,确认设备本身正常,设备可加电,或插入设备后加电但无任何反应,无法使用。新型号机器多表现为黄色USB接口存在此问题,...
2024-04-11