![](/img/trans.png)
[英]count the number of non-NA elements in each row of a data frame before a condition becomes false
[英]For each row in a data frame, replace Non-NA values with the previous maximum number up to that point in R
我在 R 中有一个数据集,其中第一列代表地理位置。 所有后续列代表从 1800 年到 2020 年连续每一年的计数。
对于每一行,我只希望非 NA 数字增加。 因此,如果后续的 Non-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 |
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.