Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R读取包含自由文本列的URL表_R_Url_Readline_Read.table - Fatal编程技术网

R读取包含自由文本列的URL表

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”是列名,

我想读一个网址里面的txt表格。该表有3列;第二列是一个字符列,其中几乎没有单词,单词周围有引号。数据不能被公共访问,这就是为什么我不能在这里给出链接,但我给出了一个打开http链接时数据的外观示例:

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)