繁体   English   中英

对于数据帧中的每一行,将非 NA 值替换为 R 中之前的最大数量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM