R读取包含自由文本列的URL表
我想读一个网址里面的txt表格。该表有3列;第二列是一个字符列,其中几乎没有单词,单词周围有引号。数据不能被公共访问,这就是为什么我不能在这里给出链接,但我给出了一个打开http链接时数据的外观示例:R读取包含自由文本列的URL表,r,url,readline,read.table,R,Url,Readline,Read.table,我想读一个网址里面的txt表格。该表有3列;第二列是一个字符列,其中几乎没有单词,单词周围有引号。数据不能被公共访问,这就是为什么我不能在这里给出链接,但我给出了一个打开http链接时数据的外观示例: col1 "column second" col3 1 "a city name" 2323 20 second 4343 30 "third row" 43434 “col1”、“column second”、“col3”是列名,
col1 "column second"
col3
1 "a city name" 2323
20 second 4343
30 "third row" 43434
“col1”、“column second”、“col3”是列名,这就是标题在真实URL中的外观。我尝试了一些读取函数,如read_delim()、readline()、read.table和fread,但它们都不能正确读取数据。当我下载或复制/粘贴到文件中时,它可以正常工作,但当我想直接从URL读取时,它会失败。问题在于第二列中的“”。例如,如果设置sep=“”,则数据的第一行有5列,第二行有3列,第三行有4列
非常感谢您的帮助。使用
扫描
将数据读入字符向量s
,并将除前3个元素外的所有元素重新组合为矩阵,然后使用这3个元素作为列名将数据框DF
。最后转换DF
中每列的类型。我们使用了scan
来读取末尾注释中显示的行
,但它也可以使用scan
的file=
参数来读取文件或连接。没有使用任何软件包
s <- scan(text = Lines, what = "", quiet = TRUE)
DF <- setNames(as.data.frame(matrix(tail(s, -3),, 3, byrow = TRUE)), s[1:3])
DF[] <- lapply(DF, type.convert)
注
以可复制形式输入:
Lines <- 'col1 "column second"
col3
1 "a city name" 2323
20 second 4343
30 "third row" 43434'
Lines格罗森迪克的答案是完美的。我刚刚找到了另一个解决方案,适合那些对阅读url表感兴趣的人
library(RCurl)
# The url link provided in the comment by Grothendieck
url <- 'https://raw.githubusercontent.com/CSSEGISandData/COVID-
19/master/archived_data/archived_daily_case_updates/02-12-2020_1020.csv'
myfile <- getURL(url, ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
mydat <- read.csv(textConnection(myfile), header=T)
head(mydat)
库(RCurl)
#Grothendieck在评论中提供的url链接
谢谢你的回答。它非常适用于文件,但当数据位于URL中时,会给出0行。如答案中所述,您必须使用file=
参数。我改为file=url。它可以与url建立连接,但看起来它转到html内容并返回更多行(列数Ok)。例如,请查看标题:“显然,如果您没有问题中所述的原始数据文件,那么它将不起作用。以下是使用扫描从URL读取数据的示例:u
library(RCurl)
# The url link provided in the comment by Grothendieck
url <- 'https://raw.githubusercontent.com/CSSEGISandData/COVID-
19/master/archived_data/archived_daily_case_updates/02-12-2020_1020.csv'
myfile <- getURL(url, ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
mydat <- read.csv(textConnection(myfile), header=T)
head(mydat)