我對R很新,嘗試了很多東西,但沒有奏效。我的表看起來像這樣:做R中的特定行的計算
data temp
11.01.15 11am 15
11.01.15 12am 16
11.01.15 13am 14
12.01.15 11am 13
12.01.15 12am 11
12.01.15 13am 11
,並繼續對5192行和很多天,我要計算當日的平均值,測量總是每天做3次。所以我需要一個循環來計算1-3,4-6,7-9等行的值的平均值,並跟蹤它們並保存在文件中。
我對R很新,嘗試了很多東西,但沒有奏效。我的表看起來像這樣:做R中的特定行的計算
data temp
11.01.15 11am 15
11.01.15 12am 16
11.01.15 13am 14
12.01.15 11am 13
12.01.15 12am 11
12.01.15 13am 11
,並繼續對5192行和很多天,我要計算當日的平均值,測量總是每天做3次。所以我需要一個循環來計算1-3,4-6,7-9等行的值的平均值,並跟蹤它們並保存在文件中。
使用dplyr
包及其功能。我會猜測你有一個名爲「日」或「日期」的變量和另一個你想要的日常變量的變量「x」。代碼:
group_by(data, day) %>%
summarize(meanX = mean(x))
會返回一個數據幀與x的每一天中稱爲data
數據集的平均值。
如果你總是有三點意見,你可以計算出平均的temp
超過3模塊假設你的數據稱爲df
tapply(df$temp, cumsum(seq(nrow(df)) %% 3 == 1L), mean)
# 1 2
# 15.00000 11.66667
另一種方式是data
轉換爲Date
類的計算平均過它。下面是使用data.table
library(data.table)
setDT(df)[, mean(temp), by = as.Date(data, "%d.%m.%y")]
# as.Date V1
# 1: 2015-01-11 15.00000
# 2: 2015-01-12 11.66667
您可以使用lapply做到這一點
req.out = do.call(rbind,
lapply(split(data, f = data$date),
function(x){
out = mean(x$measurement)
}))
其中,數據是您的包含數據幀的日期和列一個例子(我把它叫做如上測量),在您需要來計算平均值。
這將不起作用,因爲每一天的度量都是唯一的。 –
如果時間戳是日變量的一部分,它將遇到問題。但'substr(day,1,8)'會照顧它。 – iacobus