r - 如何用下一个(或数据框同一列中的上一个值)替换行中的当前值?
问题描述
如果之前有人问过这个问题,请提前道歉,但我能找到的只是如何替换 NA;永远不匹配我在这里面临的配置。在这种情况下,我只想用下一行的值替换 0。一个关于如何映射前一行的示例也会有所帮助(尽管我认为它应该非常接近映射下一行)。
下面是一段有效的代码,但在应用于大型数据帧时运行速度非常慢。我在想必须有一个更好的解决方案,也许使用 lapply()。请注意,与此处给出的示例不同,实际数据帧没有任何“分组依据”,因此 dplyr 可能不是一个选项。再次感谢你
iris$ind <- seq_along(iris$Sepal.Length)
iris$ind <- ifelse(iris$ind %% 2 == 0, 0, iris$ind)
for(i in seq_along(iris$ind)){
ifelse(iris$ind[i] == 0,
iris$ind[i] <- iris$ind[i + 1], iris$ind )
}
解决方案
您可以尝试lead
从dplyr
包中使用:
iris$ind <- ifelse(iris$ind == 0,
lead(iris$ind, order_by=iris$Sepal.Length),
iris$ind)
推荐阅读
- javascript - OpenLayers GeoJSON 图层投影不起作用
- windows - Windows 下带有 TPM 密钥证明的证书
- laravel - 无法将 bcrypted 值传递给 laravel Blade vue
- android - 引起:java.lang.ClassCastException:
- python - 如何将 MySQL 数据库连接到 AFS 服务器
- windows - 通过 Terraform 配置 Hyper-V 计算机
- python - 从 Discord 消息下载图像
- node.js - 生产环境集群
- javascript - 搜索不显示产品以及如何显示
- symfony-2.8 - Symfony 中新添加的字段(针对特定实体)未保存