gpt4 book ai didi

r - 错误 : attempt to use zero-length variable name

转载 作者:行者123 更新时间:2023-12-04 10:33:08 25 4
gpt4 key购买 nike

不打开任何文件,打开Rstudio时出现以下错误:

"Error: attempt to use zero-length variable name"



我的所有命令都被忽略(即没有任何 react ,没有警告并且 R 对我所做的任何事情都没有响应)并且我已经尝试了 rm 和 gc 选项不可用,并且还更新到 Rstudio 和 R 的最新版本,但我仍然收到此错误。

我正在运行 Windows 7(64 位)。

最佳答案

我在 dplyr github page 上发布了一个问题.我可以使用下面的代码重现结果。它与 csv 是否包含一列没有标题的行名有关。 read_csvread.csv以不同的方式处理这个问题,从而产生不同的结果 filter .

首先是它工作时的情况
write_csvread_csvread.csv ;两者都适用于 filter

library(readr)
library(dplyr)

mtcars %>% write_csv("~/Desktop/test.csv")
test_r <- read_csv("~/Desktop/test.csv") %>% filter(hp>100)
test.r <- read.csv("~/Desktop/test.csv") %>% filter(hp>100)

现在当它失败时

当通过类似 write.csv 的过程生成 csv 时, 除非此人更改默认值 row.namesFALSE ,它引入了一列没有标题的行名。读回数据时, read_csv不填写行名所在的标题,而是 read.csv推算 X。因此,当 filter工作于 read.csv导入,它包含所有带有填充单元格的标题,但是 filter之后 read_csv至少在 rownames 所在的位置有一个空的标题单元格。

以下代码应该在 test1_r %>% filter(hp>100) 之后出错出现以下错误
Error in filter_impl(.data, dots) : 
attempt to use zero-length variable name

同样,最大的区别在于 write.csv 如何生成 csv。
mtcars %>% write.csv("~/Desktop/test1.csv")


test1_r <- read_csv("~/Desktop/test1.csv")
test1_r %>% str()
#should fail here
test1_r %>% filter(hp>100)


test1.r <- read.csv("~/Desktop/test1.csv")
test1.r %>% str()
test1.r %>% filter(hp>100)

要解决此问题,您可以使用 read.csv如上所述@hackR。或者,当您知道 csv 的行为如下时,您可以对第一列进行子集化:
test1_r <- read_csv("~/Desktop/test1.csv")[-1]

或者,如果您可以控制 csv 创建步骤,则可以添加选项 row.names=FALSEwrite.csv
mtcars %>% write.csv("~/Desktop/test2.csv", row.names = FALSE)
test2.r <- read_csv("~/Desktop/test2.csv")
test2.r %>% str()
test2.r%>% filter(hp>100)

或使用 write_csv如上图所示。

关于r - 错误 : attempt to use zero-length variable name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31385976/

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