r - 连续满足条件时如何更改后续行值?
问题描述
只是想知道是否有人知道如何在数据框中满足条件时让 R 更改所有未来的行值?
即假设数据列中有一个负值 - 我希望 R 测试该列的负值和该值以及后续行 0 中的值(无论负值后面的值是否为负)。
提前谢谢了!
解决方案
这不是很优雅,但使用“经典”R 效果很好。如果 x 包含数值:
f <- function(x) {
quel <- which(x < 0)[1]
if(is.na(quel)) return(x)
x[quel:length(x)] <- 0
return(x)
}
apply(x, 2, f)
例子:
x <- as.data.frame(matrix(runif(100,-1,1), ncol=10))
print(x)
print(apply(x, 2, f))
推荐阅读
- c# - 在每个循环内将索引乘以 2
- mongodb - 嵌套数组性能和最佳实践问题中的 MongoDB $lookup
- python - 量化如何以及何时在 TFLite 图中起作用?
- plone - 构建 Plone.4-3.14 给出“需要超过 0 个值才能解压”
- sql-server - SQL Server 2014 中将 varchar 转换为时间失败
- javascript - 如何使用javascript将多个标记连接到一个位置
- android - 如何阅读这种 JSON 格式
- python - 在Python列表中对嵌套字典进行排序?
- firebase - 我想将 GeoQuery 用于 Firebase 数据库中的选定分支
- html - th标签的错误使用