【问题标题】:R data frame timestamp manipulation [duplicate]R数据帧时间戳操作[重复]
【发布时间】:2015-04-29 19:29:07
【问题描述】:

我有以下data.frame

> head(k)
              begin               end            type total_replies  rpm
1 03/22/15 00:00:00 03/22/15 00:05:00   178.19                 0.50 0.10
2              <NA>              <NA>   178.19.6               0.50 0.10
3 03/22/15 00:05:00 03/22/15 00:10:00   178.1963               0.50 0.10
4              <NA>              <NA>   178.19.75              0.50 0.10
5              <NA>              <NA>   12.221.253             0.75 0.15
6 03/22/15 00:10:00 03/22/15 00:15:00   101.254                1.50 0.30

NA值分别对应上面的时间戳,也就是说第2行的时间戳应该和第1行一样,以此类推

如何填充 NA 值以匹配它们上面的时间戳?

【问题讨论】:

  • 查看zoo 包中的na.locf 函数。

标签: r timestamp dataframe


【解决方案1】:

我认为这样的事情应该可以工作

for (i in 1:nrow(k)) {if is.na(k$begin[i]) {
k$begin[i] = k$begin[i-1]}}

【讨论】:

    【解决方案2】:

    基本上,您必须执行以下操作:

    replace <- function(dataFrame, forField){
        for (i in c(1:nrow(dataFrame))){
            if (is.na(dataFrame[i,forField])){
                dataFrame[i,forField] <- dataFrame[i-1,forField]
            }
        }
        return (dataFrame)
    }
    

    并调用函数

    replace(yourDataFrame, "begin") 
    

    替换所有开始字段。结束也是一样。

    更新输出:

    【讨论】:

    • OP 没有做任何事情。他可以按照你的建议去做。有许多可能的解决方案,您的可能可能就是其中之一。
    • 没关系,我找到了问题。
    • 如果我可能知道问题是什么?我猜你没有分配新构建的数据框?
    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    相关资源
    最近更新 更多