从CSV读取数据时type.convert错误

时间:2019-10-21 10:14:38

标签: r

我正在从事篮球项目。我正在努力打开有关R的数据: https://www.basketball-reference.com/leagues/NBA_2019_totals.html

我已经在excel上导入了数据,然后将其另存为CSV(用于macintosh)。 在R上导入数据时,出现错误消息:

"Error in type.convert.default(data[[i]], as.is = as.is[i], dec = dec, : invalid multibyte string at '<e7>lex<20>Abrines' "

2 个答案:

答案 0 :(得分:0)

以下似乎有效。由于列readHTMLTable中存在空字符,Player函数的确发出警告。

library(XML)

uri <- "https://www.basketball-reference.com/leagues/NBA_2019_totals.html"
data <- readHTMLTable(readLines(uri), which = 1, header = TRUE)

i <- grep("Player", data$Player, ignore.case = TRUE)
data <- data[-i, ]
cols <- c(1, 4, 6:ncol(data))
data[cols] <- lapply(data[cols], function(x) as.numeric(as.character(x)))

检查是否有NA个值。这是必需的,因为链接中的表会不时地重新启动标题,并且字符串会与数字条目混合在一起。上面的grep旨在检测这种情况,但也许还有其他情况。

sapply(data, function(x) sum(is.na(x)))

不,一切都很好。因此,将数据集写为CSV文件。

write.csv(data, "nba.csv")

答案 1 :(得分:-1)

将文件编码为Latin1可以提供帮助。
例如,要在csv中读取文件,请跳过第二行:

Test=(read.csv("IMDB.csv",header=T,sep=",",fileEncoding="latin1")[-2,])