【问题标题】:How to fill NAs by factors in data frame, by ID如何按数据框中的因子填充 NA,按 ID
【发布时间】:2021-04-21 13:30:15
【问题描述】:

我有一个带有列 ID(有 800 多个 ID)的数据框,对应于具有固定地理位置(LAT、LONG)的陷阱。每周检查陷阱,然后我得到捕获的昆虫(femeas)的数量。从 06 月到 2014 年,LAT 和 LONG 列是空的 (NAs)。我不知道如何使用同一 ID 的另一行中的 LAT / LONG 列中的值更新数据库。有人可以帮助我吗?

我试过了:

ddply(data, "ID", na.locf)

但它不起作用。

部分数据: https://github.com/daniandreza/spatialtemporal.git

【问题讨论】:

    标签: r dataframe conditional-statements missing-data


    【解决方案1】:

    您可以使用dplyr::group_bytidyr::fill

    library(dplyr);library(tidyr)
    data %>%
       group_by(ID) %>%
       fill(LAT:Y,.direction = "updown")
    ## A tibble: 41 x 9
    ## Groups:   ID [3]
    #      ID   Dia  Mes    ano FEMEA   LAT  LONG       X        Y
    #   <int> <int> <int> <int> <int> <dbl> <dbl>   <dbl>    <dbl>
    # 1    11    24     4  2014     0 -30.1 -51.2 484034. 6673913.
    # 2    11    29     4  2014     1 -30.1 -51.2 484034. 6673913.
    # 3    11     7     5  2014     0 -30.1 -51.2 484034. 6673913.
    # 4    11     9     1  2014     0 -30.1 -51.2 484034. 6673913.
    # 5    11    17     1  2014     1 -30.1 -51.2 484034. 6673913.
    # 6    11    21     1  2014     0 -30.1 -51.2 484034. 6673913.
    # 7    11    30     1  2014     3 -30.1 -51.2 484034. 6673913.
    # 8    11     5     2  2014     0 -30.1 -51.2 484034. 6673913.
    # 9    11    13     2  2014     0 -30.1 -51.2 484034. 6673913.
    #10    11    21     2  2014     0 -30.1 -51.2 484034. 6673913.
    ## … with 31 more rows
    

    数据

    data <- data.table::fread("https://raw.githubusercontent.com/daniandreza/spatialtemporal/master/Data_MI.csv",dec = ",")
    names(data)[3] <- "Mes"
    data.table::setDF(data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 2021-12-18
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多