提问者:小点点

从谷歌文档获取数据。, read.csv,readLines和编码


这是我的代码。

require(RCurl)

u="https://docs.google.com/spreadsheet/pub?key=0AmKR51OFQvWqdFd5XzgwQXlrZ2t3a2dYUXFSMl85TFE&single=true&gid=0&output=csv"

#1st attmept
tc <- getURL(u, ssl.verifypeer=FALSE, .encoding="UTF-8")
tcc <- textConnection(tc, encoding="UTF-8")
readLines(tcc, encoding="UTF-8")

#2nd attmept
tc <- getURL(u, ssl.verifypeer=FALSE, .encoding="UTF-8")
tcc <- textConnection(tc, encoding="UTF-8")
read.csv(tcc, header=T, sep=",", fileEncoding="UTF-8")
read.csv(tcc, header=F, sep=",", fileEncoding="UTF-8")

我有一个问题关于"read. csv"从谷歌文档第一次尝试是成功的,但第二次尝试是不成功的

read.csv(tcc, header=T, sep=",", fileEncoding="UTF-8")
Error in make.names(col.names, unique = TRUE) : invalid multibyte string at '<ed><83><80>?꾩뒪<ed>꺃<ed>봽'

read.csv(tcc, header=F, sep=",", fileEncoding="UTF-8")
Error in type.convert(data[[i]], as.is = as.is[i], dec = dec, na.strings = character(0L)) : 

'处的无效多字节字符串

我不知道为什么我用的是Windows Vista

R版本3.0.0(2013-04-03)平台:x86_64-w64-mingw32/x64(64-bit)

LC_COLLATE=Korean_Korea.949LC_CTYPE=Korean_Korea.949LC_MONETARY=Korean_Korea.949LC_NUMERIC=C
[5]LC_TIME=Korean_Korea.949

附加的基础包:[1]stats图形grDevices utils数据集方法基础

其他附包:[1]RCurl_1.95-4.1bitops_1.0-6

我猜这是关于编码的,但是为什么readLines有效而read. csv无效?

有没有办法解决这个问题?

如果我可以使用read. csv,我会更好


共1个答案

匿名用户

我会尝试:

library(data.table)
?fread

Fread为您确定数据类型非常聪明,它可能会解决问题。