【发布时间】:2021-03-02 19:04:09
【问题描述】:
我有以下数据
head(datakurz)
Datum Abfluss days
1 1968-01-01 0.681 1968-01-01
2 1968-01-02 0.610 1968-01-02
3 1968-01-03 0.610 1968-01-03
4 1968-01-04 0.790 1968-01-04
5 1968-01-05 0.904 1968-01-05
6 1968-01-06 3.720 1968-01-06
....
....
....
我想计算每 5 行的 min 值,所以基本上
(0.681,0.610,0.610,0.790,0.904) = 0.610的最小值
这是由我的函数完成的
Datum <- datad$days[1:100]
Abfluss <- datad$q[1:100]
datakurz <- data.frame(Datum, Abfluss)
datakurz$days <- as.Date(datakurz$Datum, format="%Y-%m-%d")
class(datakurz$days)
head(datakurz)
# Blöcke gleicher Größe (window size) und deren Minima berechnen
#minimum <- numeric(ws)
zaehler <- nrow(datakurz) / 5 #Anzahl Zeilen Datensatz durch ws teilen -> Anzahl Blöcke
azeile <- 1
ezeile <- 5
for(i in 1:zaehler){
minimum <- min(datakurz$Abfluss [azeile:ezeile])
print(minimum)
azeile <- azeile+5
ezeile <- ezeile+5
}
这会生成以下输出
[1] 0.61
[1] 0.828
[1] 0.681
[1] 1.41
[1] 0.79
[1] 0.904
[1] 0.828
[1] 0.718
[1] 0.904
[1] 0.79
[1] 0.944
[1] 1.03
[1] 0.866
[1] 1.07
[1] 1.07
[1] 1.25
[1] 0.944
[1] 0.828
[1] 0.79
[1] 1.07
所以基本上0.61是前5个值的最小值0.828是下一个块auf 5个值的最小值等等......
现在我想将这些值作为一列附加到数据框中,但只是最小值。每块5个值的值(其余应为null)
期望的输出
Datum Abfluss days min
1 1968-01-01 0.681 1968-01-01 NULL
2 1968-01-02 0.610 1968-01-02 0.610
3 1968-01-03 0.610 1968-01-03 0.610
4 1968-01-04 0.790 1968-01-04 NULL
5 1968-01-05 0.904 1968-01-05 NULL
6 1968-01-06 3.720 1968-01-06 ...
谁能帮帮我?
【问题讨论】: