gpt4 book ai didi

r - 导入数据集时出现问题: `Error in scan(...): line 1 did not have 145 elements`

转载 作者:行者123 更新时间:2023-12-03 05:51:39 25 4
gpt4 key购买 nike

我正在尝试使用 read.table() 在 R 中导入数据集:

Dataset.df <- read.table("C:\\dataset.txt", header=TRUE)

但我收到以下错误消息:

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
line 1 did not have 145 elements

这是什么意思以及如何解决它?

最佳答案

这个错误是不言自明的。数据文件的第一行(或第二行,视情况而定,因为您使用的是 header = TRUE)似乎缺少数据。

这是一个小例子:

## Create a small dataset to play with
cat("V1 V2\nFirst 1 2\nSecond 2\nThird 3 8\n", file="test.txt")

R 自动检测到它应该期望行名加上两列(3 个元素),但它在第 2 行没有找到 3 个元素,因此您会收到错误:

read.table("test.txt", header = TRUE)
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
# line 2 did not have 3 elements

查看数据文件,看看是否确实有问题:

cat(readLines("test.txt"), sep = "\n")
# V1 V2
# First 1 2
# Second 2
# Third 3 8

可能需要手动更正,或者我们可以假设“第二”行中的第一个值应位于第一列,其他值应为NA。如果是这种情况,fill = TRUE 足以解决您的问题。

read.table("test.txt", header = TRUE, fill = TRUE)
# V1 V2
# First 1 2
# Second 2 NA
# Third 3 8
<小时/>

R 也足够聪明,即使缺少行名,也能计算出它需要多少元素:

cat("V1 V2\n1\n2 5\n3 8\n", file="test2.txt")
cat(readLines("test2.txt"), sep = "\n")
# V1 V2
# 1
# 2 5
# 3 8
read.table("test2.txt", header = TRUE)
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
# line 1 did not have 2 elements
read.table("test2.txt", header = TRUE, fill = TRUE)
# V1 V2
# 1 1 NA
# 2 2 5
# 3 3 8

关于r - 导入数据集时出现问题: `Error in scan(...): line 1 did not have 145 elements` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18161009/

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