gpt4 book ai didi

读入文件 - 警告消息

转载 作者:行者123 更新时间:2023-12-02 03:01:39 24 4
gpt4 key购买 nike

我有一个包含 22268 行 X 2521 列的文件。当我尝试使用这行代码读取文件时:

file <- read.table(textfile, skip=2, header=TRUE, sep="\t", fill=TRUE, blank.lines.skip=FALSE)

但我只读入 13024 行 BY 2521 列,并出现以下错误:

Warning message: In scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : number of items read is not a multiple of the number of columns

我还使用此命令来查看哪些行的列数不正确:

x <-count.fields(textfile, sep="\t", skip=2)
incorrect <- which(x != 2521)

并返回大约 20 行不正确的列表。

有没有办法用 NA 值填充这些行?

我认为这就是 read.table 函数中“fill”参数的作用,但事实并非如此。

或者

有没有办法忽略这些在“不正确”变量中标识的行?

最佳答案

您可以使用readLines()输入数据,然后找到有问题的行。

    con <- file("path/to/file.csv", "rb")
rawContent <- readLines(con) # empty
close(con) # close the connection to the file, to keep things tidy

然后看看rawContent

要查找列数不正确的行,例如:

    expectedColumns <- 2521
delim <- "\t"

indxToOffenders <-
sapply(rawContent, function(x) # for each line in rawContent
length(gregexpr(delim, x)[[1]]) != expectedColumns # count the number of delims and compare that number to expectedColumns
)

然后读入您的数据:

  myDataFrame <- read.csv(rawContent[-indxToOffenders], header=??, sep=delim)

关于读入文件 - 警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693341/

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