R語言求一行(列表、list)數(shù)據(jù)的平均數(shù)操作
R語言求一個列表的平均數(shù)可以使用mean() :
mean英文意思有平均數(shù)的含義
x=c(1,3,5,7,9) max(x) #這樣即可求得平均數(shù)為 : 5
假如讀取過一個csv文件之后,要求其中一行數(shù)據(jù)中指定某個區(qū)間內(nèi)的平均數(shù)可以使用rowMeans()

data = read.csv(“input.csv",sep=",",header=T) rowMeans(data[10:17])
補(bǔ)充:R語言-數(shù)據(jù)框分組求平均值
【技術(shù)關(guān)鍵】
1、從excel把數(shù)據(jù)讀到數(shù)據(jù)框
2、算法實(shí)現(xiàn)將數(shù)據(jù)框的一些數(shù)據(jù)合為新的數(shù)據(jù)并組成新的數(shù)據(jù)框
3、將處理結(jié)果,即新的數(shù)據(jù)框保存到excel文件(或.csv)
4、將繪圖結(jié)果輸出到PDF文件保存
最近在嘗試分析近日的環(huán)境溫濕度變化;
雖然設(shè)備只運(yùn)行了48小時(shí)左右;
但收集到的有效數(shù)據(jù)有30000+(當(dāng)然對于R而言這算很小意思的了);
由于環(huán)境溫濕度在一小段時(shí)間內(nèi)基本保持穩(wěn)定;
所以在分析幾日內(nèi)的溫濕度變化情況時(shí)可以以每10min為單位記錄數(shù)據(jù);
這就需要一個腳本,能將數(shù)據(jù)有效劃分為單位后求均值再保存到表;
###################################################
# - Filename : washData.R
# - Author : Johan Version : 1.0 Date : 2018/5/3
# - Discription : 將excel表中的數(shù)據(jù)分10min計(jì)算平均值
# 并保存到excel
# - Function list :
# 1.
# - Others :
# 1.本程序可分析.xls或.csv文件
###################################################
# 引用包
library(RODBC)
# 設(shè)置工作目錄
setwd("H:/mySoftware/R/myData")
# 導(dǎo)入數(shù)據(jù)到myDataFrame,文件名根據(jù)需要改變
# 打開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
# 初始化緩存向量
# 時(shí)分秒為起始量,可修改
NUM <- c() # 編號
TEMP <- c() # 溫度
HUMI <- c() # 濕度
t <- 0 # 溫度緩存
h <- 0 # 濕度緩存
num <- 0 # 編號緩存
dn <- 0 # 計(jì)數(shù)器
flag <- FALSE # 保存指示
# 循環(huán)處理數(shù)據(jù)
for(i in 1 : 31600){
# 當(dāng)前分鐘是否為10的倍數(shù)
if(myDataFrame$minute[i] %% 10 == 0){
# 計(jì)算上一組數(shù)據(jù)的均值并保存
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
}
# 緩存復(fù)位
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
}
}
# 構(gòu)建新數(shù)據(jù)框
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")
把處理結(jié)果保存到新的.csv或者.xls文件即是整個腳本的目的所在,方便后面的數(shù)據(jù)分析。
運(yùn)行后得到的效果如下:(由于溫濕度的數(shù)值不在一個層次所以反映得不太直觀,可嘗試調(diào)換plot和lines的順序,通過繪圖方面的學(xué)習(xí)可以畫出更好看的圖)

如果想要輸出為PDF保存該圖片,可以運(yùn)行另一個腳本:
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文件的一個好處就是它里面的圖片是矢量的,也就是說放大圖片不會改變圖片的原樣,原本看上去粘在一塊兒的點(diǎn)放大以后能看出來是分開的。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語言中的fivenum與quantile()函數(shù)算法詳解
這篇文章主要介紹了R語言中的fivenum與quantile()函數(shù)算法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
R語言入門在CentOS服務(wù)器上配置RStudio Server
最近在服務(wù)器(Linux)上進(jìn)行RStudio Server的環(huán)境配置,其實(shí)主要的工作在RStudio的官方網(wǎng)站中已經(jīng)說明清楚了,關(guān)鍵是需要先安裝R,以及進(jìn)行部分配置2021-11-11

