gpt4 book ai didi

r - 警告消息 : in rbindlist(allargs) : NAs introduced by coercion: possible bug in data. 表?

转载 作者:行者123 更新时间:2023-12-03 03:34:54 31 4
gpt4 key购买 nike

在分析一些数据时,我遇到了警告消息,我怀疑这是一个错误,因为它是一个非常简单的命令,我已经使用过很多次了。

Warning message:
In rbindlist(allargs) : NAs introduced by coercion

我能够重现该错误。这是您应该能够重现错误的代码。

# unique random names for column V1
set.seed(45)
n <- sapply(1:500, function(x) {
paste(sample(c(letters[1:26]), 10), collapse="")
})
# generate some values for V2 and V3
dt <- data.table(V1 = sample(n, 30*500, replace = TRUE),
V2 = sample(1:10, 30*500, replace = TRUE),
V3 = sample(50:100, 30*500, replace = TRUE))
setkey(dt, "V1")

# No warning when providing column names (and right results)
dt[, list(s = sum(V2), m = mean(V3)),by=V1]

# V1 s m
# 1: acgmqyuwpe 238 74.97778
# 2: adcltygwsq 204 79.94118
# 3: adftozibnh 165 75.51515
# 4: aeuowtlskr 164 75.70968
# 5: ahfoqclkpg 192 73.20000
# ---
# 496: zuqegoxkpi 93 77.95000
# 497: zwpserimgf 178 72.62963
# 498: zxkpdrlcsf 154 78.04167
# 499: zxvoaeflhq 121 75.34615
# 500: zyiwcsanlm 180 76.61290

# Warning message and results with NA
dt[, list(sum(V2), mean(V3)),by=V1]

# V1 V1 V2
# 1: acgmqyuwpe 238 74.97778
# 2: adcltygwsq 204 79.94118
# 3: adftozibnh 165 75.51515
# 4: aeuowtlskr 164 75.70968
# 5: ahfoqclkpg 192 73.20000
# ---
# 496: zuqegoxkpi NA 77.95000
# 497: zwpserimgf NA 72.62963
# 498: zxkpdrlcsf NA 78.04167
# 499: zxvoaeflhq NA 75.34615
# 500: zyiwcsanlm NA 76.61290

Warning message:
In rbindlist(allargs) : NAs introduced by coercion
  • 1) 如果您不提供列名称,似乎就会发生这种情况。

  • 2) 即使如此,特别是当 V1 (或者您在 by= 中使用的列)有很多 unique条目(此处为 500)并且您没有指定列名称,那么这似乎会发生。也就是说,当 by= 时,这种情况不会发生。栏目V1具有更少的独特条目。例如,尝试更改 n 的代码来自sapply(1:500, ...sapply(1:50, ...并且您不会收到任何警告。

这是怎么回事?它的 R 版本 2.15 在运行 OS X 10.8.2 的 Macbook pro 上(尽管我在另一台运行 2.15.2 的 macbook pro 上测试了它)。这是sessionInfo() .

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] data.table_1.8.6 reshape2_1.2.2

loaded via a namespace (and not attached):
[1] plyr_1.8 stringr_0.6.2 tools_2.15.0

刚刚转载2.15.2 :

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] data.table_1.8.6

最佳答案

更新:现已由 Ricardo 在 v1.8.9 中修复

o rbind'ing data.tables containing duplicate, "" or NA column names now works, #2726 & #2384. Thanks to Garrett See and Arun Srinivasan for reporting. This also affected the printing of data.tables with duplicate column names since the head and tail are rbind-ed together internally.

<小时/>

是的,错误。似乎在 data.table 的 print 方法中具有重复的名称。

ans = dt[, list(sum(V2), mean(V3)),by=V1]
head(ans)
V1 V1 V2 # notice the duplicated V1
1: acgmqyuwpe 140 78.07692
2: adcltygwsq 191 76.93333
3: adftozibnh 153 73.82143
4: aeuowtlskr 122 73.04348
5: ahfoqclkpg 143 75.83333
6: ahtczyuipw 135 73.54167
tail(ans)
V1 V1 V2
1: zugrnehpmq 189 72.63889
2: zuqegoxkpi 150 76.03333
3: zwpserimgf 180 74.81818
4: zxkpdrlcsf 115 72.57895
5: zxvoaeflhq 157 76.53571
6: zyiwcsanlm 145 72.79167
print(ans)
Error in rbindlist(allargs) :
(converted from warning) NAs introduced by coercion
rbind(head(ans),tail(ans))
Error in rbindlist(allargs) :
(converted from warning) NAs introduced by coercion

作为解决方法,不要创建列名称为 V1V2 等的 data.table。

它是由于这个已知的错误而引起的:

#2384 rbind of tables containing duplicate column names doesn't bind correctly

我已经添加了一个返回此问题的链接。

谢谢!

关于r - 警告消息 : in rbindlist(allargs) : NAs introduced by coercion: possible bug in data. 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14584510/

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