r - R 基于前一行的逐行条目填充
问题描述
我有一个看起来像这样的 R 数据框:
Category Date Column
Cat1 2018-03-23 19
Cat1 2018-03-24 19
Cat1 2018-03-25 19
Cat1 2018-03-26 NULL
Cat1 2018-03-27 NULL
... .... ...
Cat2 2018-03-23 25
Cat2 2018-03-24 25
Cat2 2018-03-25 25
Cat2 2018-03-26 NULL
Cat2 2018-03-27 NULL
... .... ...
并想用最后一个数字替换 NULL 值。因此,Cat1
对于 NULL 变为 19,对于Cat2
行 NULL 变为 25。我该如何实现呢?
解决方案
也许您可以尝试下面的基本 R 代码,使用ave
df <- within(df, Column <- ave(Column, Category, FUN = function(x) ifelse(x=="NULL",tail(x[x!="NULL"],1),x)))
# > df
# Category Date Column
# 1 Cat1 2018-03-23 19
# 2 Cat1 2018-03-24 19
# 3 Cat1 2018-03-25 19
# 4 Cat1 2018-03-26 19
# 5 Cat1 2018-03-27 19
# 6 Cat2 2018-03-23 25
# 7 Cat2 2018-03-24 25
# 8 Cat2 2018-03-25 25
# 9 Cat2 2018-03-26 25
# 10 Cat2 2018-03-27 25
数据
df <- structure(list(Category = c("Cat1", "Cat1", "Cat1", "Cat1", "Cat1",
"Cat2", "Cat2", "Cat2", "Cat2", "Cat2"), Date = c("2018-03-23",
"2018-03-24", "2018-03-25", "2018-03-26", "2018-03-27", "2018-03-23",
"2018-03-24", "2018-03-25", "2018-03-26", "2018-03-27"), Column = c("19",
"19", "19", "19", "19", "25", "25", "25", "25", "25")), row.names = c(NA,
-10L), class = "data.frame")
推荐阅读
- c# - 将本地代码的第一个版本推送到 bitbucket 存储库时出现问题
- swiftui - 仅当用户在 SwiftUI 中不在 Circle 的所有框架内点击圆圈时,我如何才能使 onTapGesture 起作用?
- swift - 如何从 Google Geocoding API Swift 解码 Json 数据
- javascript - Javascript循环只执行一次
- python - 计数按降序对列表进行排序
- apache-kafka - 将 kafka-connector 源偏移重置为 0
- android - java.io.IOException:尝试向套接字写入响应时未创建套接字
- html - CSS 过渡适用于某些元素,但不适用于其他元素
- python - Mac 上的“/Library”目录权限被拒绝 - Python3
- amazon-web-services - 如何禁用 AWS CLI 帮助输出的分页?