我在 R 中有一個資料集,其中第一列代表地理位置。所有隨后的列代表從 1800 年到 2020 年連續每一年的計數。
對于每一行,我只希望非 NA 數字增加。因此,如果后續的非 NA 值低于前一個值,請將其更改為該點之前的最大值。
例如它現在看起來像這樣:
| 地點 | 1800 | 1801 | 1802 | 1803 | 1804 |
|---|---|---|---|---|---|
| 一個 | 1 | 3 | 2 | 1 | 3 |
| 乙 | 1 | 2 | 3 | 1 | 5 |
| C | 0 | 1 | 5 | 1 | 3 |
我希望它看起來像這樣:
| 地點 | 1800 | 1801 | 1802 | 1803 | 1804 |
|---|---|---|---|---|---|
| 一個 | 1 | 3 | 3 | 3 | 3 |
| 乙 | 1 | 2 | 3 | 3 | 5 |
| C | 0 | 1 | 5 | 5 | 5 |
uj5u.com熱心網友回復:
df1 <- df
df1[-1] <- matrixStats::rowCummaxs(as.matrix(df[-1]))
df1
Location X1800 X1801 X1802 X1803 X1804
1 A 1 3 3 3 3
2 B 1 2 3 3 5
3 C 0 1 5 5 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/403211.html
標籤:
上一篇:根據行條件過濾資料框
下一篇:用R中的多重插補模式替換NA值
