gpt4 book ai didi

r - 数据表 := does not support logical data types when adding new column?

转载 作者:行者123 更新时间:2023-12-02 02:14:50 25 4
gpt4 key购买 nike

升级到data.table的最新版本1.8.1(在R-forge上可用)后,我遇到了以下问题。在那个版本之前,我可以这样做:

DT = data.table(a=LETTERS[c(1,1:3)],b=4:7,key="a")
DT
a b
1: A 4
2: A 5
3: B 6
4: C 7

DT[ ,newcol := NA]

即我能够添加一个充满 NA 的新列。现在我收到一条错误消息,指出不支持 NA 的逻辑类型(事实上 DT[ ,newcol := TRUE] 也不起作用)。

所以现在我通过首先添加一个双列,然后将其设置为 NA 或我需要的任何逻辑来解决这个问题:

DT[ ,newcol:=1]
a b newcol
1: A 4 1
2: A 5 1
3: B 6 1
4: C 7 1

DT[ ,newcol:=NA]
a b newcol
1: A 4 NA
2: A 5 NA
3: B 6 NA
4: C 7 NA

我想问一下这样做是否正确。我想这没什么大不了的。它工作得很好,只是想避免不必要的步骤。

最佳答案

在修复此错误之前(请参阅上面的 Matthew Dowle 的评论),您可以通过在新列中直接指定所需的 NA 类型来绕过它(当然“逻辑”类型除外,该类型不' 目前工作):

DT <- data.table(a=LETTERS[c(1,1:3)],b=4:7,key="a")
DT[ ,newcol := NA_real_] ## Other options are NA_integer_ and NA_character_
# a b newcol
# 1: A 4 NA
# 2: A 5 NA
# 3: B 6 NA
# 4: C 7 NA

## Plain old NA has type and class "logical", partly explaining the
## error message returned by DT[,newcol:=NA]
c(typeof(NA), class(NA))
# [1] "logical" "logical"

关于r - 数据表 := does not support logical data types when adding new column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com