将简单文本文件读入R-BLS数据

将简单文本文件读入R-BLS数据,r,read.table,R,Read.table,我试图理解如何将BLS数据库中的一些文本文件读入R url <- "http://download.bls.gov/pub/time.series/oe/oe.datatype" datatype <- read.table(url) Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :line 1 did not have 6 elements 我还试图下载并检查该文件,但不确定

我试图理解如何将BLS数据库中的一些文本文件读入R

url <- "http://download.bls.gov/pub/time.series/oe/oe.datatype"
datatype <- read.table(url)
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :line 1 
did not have 6 elements
我还试图下载并检查该文件,但不确定我在记事本++中看到了什么

download.file(url, "datatype.txt")
datatype <- read.table("datatype.txt", sep='\t')

datatype
                                datatype_code datatype_name
01                                 Employment            NA
02 Employment percent relative standard error            NA
03                           Hourly mean wage            NA
04                           Annual mean wage            NA
download.file(url,“datatype.txt”)

数据类型正如@zx8754所指出的,这个特定的文件在每一行中都有一个额外的制表符“\t”,头行除外

您可以读取不带标头的文件:

url <- "http://download.bls.gov/pub/time.series/oe/oe.datatype"
df <- read.delim(url, skip = 1, header = FALSE)
head(df)
#   V1                                         V2 V3
# 1  1                                 Employment NA
# 2  2 Employment percent relative standard error NA
# 3  3                           Hourly mean wage NA
# 4  4                           Annual mean wage NA
# 5  5       Wage percent relative standard error NA
# 6  6                Hourly 10th percentile wage NA

url这里有一个很棒的tidyverse选项。事实证明,readr::read_tsv可以有效地处理这个问题

library(tidyverse)
df <- read_tsv(url)
head(df)
# A tibble: 6 x 2
  datatype_code                              datatype_name
          <chr>                                      <chr>
1            01                                 Employment
2            02 Employment percent relative standard error
3            03                           Hourly mean wage
4            04                           Annual mean wage
5            05       Wage percent relative standard error
6            06                Hourly 10th percentile wage
库(tidyverse)

如果这个几乎可以工作,则删除标题:
data.table::fread(“http://download.bls.gov/pub/time.series/oe/oe.datatype,colClasses=rep(“character”,3))[,1:2,with=FALSE]
。这些文件很奇怪,每行末尾都有额外的制表符,除了标题。感谢您指出额外的制表符不在标题行上。帮助我理解错误的原因。谢谢你的帮助。我可以在下载的文件末尾手动添加制表符,但根据您的提示,我可以调整脚本,避免手动调整任何内容。谢谢谢谢你,本。事实上,我最近又在重新审视这个问题。tidyverse readr函数运行良好。出于好奇,您是否收到了一堆警告消息?我收到了,但我相信它们是解析过程的一部分。有关更多信息,请参阅渐晕图和>问题(df)。然而,我无法解释。
download.file(url, "datatype.txt")
datatype <- read.table("datatype.txt", sep='\t')

datatype
                                datatype_code datatype_name
01                                 Employment            NA
02 Employment percent relative standard error            NA
03                           Hourly mean wage            NA
04                           Annual mean wage            NA
url <- "http://download.bls.gov/pub/time.series/oe/oe.datatype"
df <- read.delim(url, skip = 1, header = FALSE)
head(df)
#   V1                                         V2 V3
# 1  1                                 Employment NA
# 2  2 Employment percent relative standard error NA
# 3  3                           Hourly mean wage NA
# 4  4                           Annual mean wage NA
# 5  5       Wage percent relative standard error NA
# 6  6                Hourly 10th percentile wage NA
header <- read.delim(url, nrows = 1, header = FALSE, stringsAsFactors = FALSE)
names(df) <- header
head(df)
#   datatype_code                              datatype_name NA
# 1             1                                 Employment NA
# 2             2 Employment percent relative standard error NA
# 3             3                           Hourly mean wage NA
# 4             4                           Annual mean wage NA
# 5             5       Wage percent relative standard error NA
# 6             6                Hourly 10th percentile wage NA
df <- df[-3]
library(tidyverse)
df <- read_tsv(url)
head(df)
# A tibble: 6 x 2
  datatype_code                              datatype_name
          <chr>                                      <chr>
1            01                                 Employment
2            02 Employment percent relative standard error
3            03                           Hourly mean wage
4            04                           Annual mean wage
5            05       Wage percent relative standard error
6            06                Hourly 10th percentile wage