【问题标题】:Can't add value to an empty data table无法向空数据表添加值
【发布时间】:2018-03-26 04:01:13
【问题描述】:

我创建了一个空数据表dt,其中包含idbeginend 列。

library(data.table)
dt <- data.table(id=numeric(), begin=numeric(),end=numeric())

我尝试将值 1 添加到列 id 的第一行。

dt$id[1] <- 1

但它的值仍然是NA。不知道怎么回事。

dt$id[1]
# [1] NA

【问题讨论】:

    标签: r dataframe datatable


    【解决方案1】:

    选项 1: 使用 rbind()。这默认为rbindlist(),它允许我们使用fill = TRUE。在我们只想为一个变量添加多个值的情况下,它具有简单的优点。

    rbind(dt, list(id = 1), fill = TRUE)
    #    id begin end
    # 1:  1    NA  NA
    
    rbind(dt, list(id = 1:4), fill = TRUE)
    #    id begin end
    # 1:  1    NA  NA
    # 2:  2    NA  NA
    # 3:  3    NA  NA
    # 4:  4    NA  NA
    

    选项 2: 使用 dt[1] 创建一行 NA,然后将 1 分配给 id。这里的问题是我们还必须命名其他列。如果我们有很多列,这可能没有用。

    dt[1, .(id = 1, begin, end)]
    #    id begin end
    # 1:  1    NA  NA
    

    【讨论】:

      【解决方案2】:

      您可以使用:rbind(dt, list(1, NA, NA))

      【讨论】:

        猜你喜欢
        • 2023-01-17
        • 1970-01-01
        • 2021-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-29
        • 2015-09-30
        • 2023-04-01
        相关资源
        最近更新 更多