Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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
具有可变列的read.table_R - Fatal编程技术网

具有可变列的read.table

具有可变列的read.table,r,R,我想从在线托管的NOAA文件中读取表格。该文件是各个城市的电台列表。我的问题是有一种读取数据的方法。各列之间似乎没有一致地分开。这意味着我必须将fill选项设置为true,这将导致多个单词cities出现在不同的列中。这显然不是我想要的,但我看不到一个解决方案可以纠正它。有没有办法指定最后几列作为一列一起读入?或者我不应该使用read.table或者其他一些东西?感谢您的帮助 代码如下 url <- "ftp://ftp.ncdc.noaa.gov/pub/data/normals/198

我想从在线托管的NOAA文件中读取表格。该文件是各个城市的电台列表。我的问题是有一种读取数据的方法。各列之间似乎没有一致地分开。这意味着我必须将
fill
选项设置为true,这将导致多个单词cities出现在不同的列中。这显然不是我想要的,但我看不到一个解决方案可以纠正它。有没有办法指定最后几列作为一列一起读入?或者我不应该使用read.table或者其他一些东西?感谢您的帮助

代码如下

url <- "ftp://ftp.ncdc.noaa.gov/pub/data/normals/1981-2010/station-inventories/temp-inventory.txt"

stations <- read.table(url, header=FALSE, skip=2, fill=TRUE, nrows = 5,
             col.names = c("ID","lat","lon","UNK","State","City","UNK2","UNK3","UNK4")
             )
stations

           ID     lat      lon   UNK State     City        UNK2        UNK3         UNK4
1 CQC00914080 15.2136 145.7497 252.1    MP  CAPITOL        HILL           1  TRADITIONAL
2 CQC00914801 14.1717 145.2428 179.2    MP     ROTA          AP       91221  TRADITIONAL
3 FMC00914395  5.3544 162.9533   2.1    FM   KOSRAE       91355 TRADITIONAL
4 FMC00914419  5.5167 153.8167   1.5    FM LUKUNOCH TRADITIONAL            
5 FMC00914446  9.6053 138.1786  14.9    FM     MAAP TRADITIONAL            

它可以与包
readr
中的
read\u表
配合使用:

readr::read_table(url, skip=2,  n_max = 5,col_names=FALSE)

cols(
  X1 = col_character(),
  X2 = col_double(),
  X3 = col_double(),
  X4 = col_double(),
  X5 = col_character(),
  X6 = col_character(),
  X7 = col_character(),
  X8 = col_character(),
  X9 = col_integer(),
  X10 = col_character()
)
# A tibble: 5 × 10
           X1      X2       X3    X4    X5             X6    X7    X8    X9         X10
        <chr>   <dbl>    <dbl> <dbl> <chr>          <chr> <chr> <chr> <int>       <chr>
1 CQC00914080 15.2136 145.7497 252.1    MP CAPITOL HILL 1                NA TRADITIONAL
2 CQC00914801 14.1717 145.2428 179.2    MP        ROTA AP             91221 TRADITIONAL
3 FMC00914395  5.3544 162.9533   2.1    FM         KOSRAE             91355 TRADITIONAL
4 FMC00914419  5.5167 153.8167   1.5    FM       LUKUNOCH                NA TRADITIONAL
5 FMC00914446  9.6053 138.1786  14.9    FM           MAAP                NA TRADITIONAL
readr::read\u表(url,skip=2,n\u max=5,col\u names=FALSE)
科尔斯(
X1=列字符(),
X2=col_double(),
X3=col_double(),
X4=col_double(),
X5=列字符(),
X6=列字符(),
X7=列字符(),
X8=列字符(),
X9=列整数值(),
X10=列字符()
)
#一个tibble:5×10
x1x2x3x4x5x6x7x8x9x10
1 CQC00914080 15.2136 145.7497 252.1 MP国会山1 NA传统
2 CQC00914801 14.1717145.2428179.2 MP ROTA AP 91221传统
3 FMC00914395 5.3544 162.9533 2.1 FM KOSRAE 91355传统
4 FMC00914419 5.5167 153.8167 1.5 FM LUKUNOCH NA传统
5 FMC00914446 9.6053 138.1786 14.9 FM MAAP NA传统

它可以与包
readr
中的
readu表
配合使用:

readr::read_table(url, skip=2,  n_max = 5,col_names=FALSE)

cols(
  X1 = col_character(),
  X2 = col_double(),
  X3 = col_double(),
  X4 = col_double(),
  X5 = col_character(),
  X6 = col_character(),
  X7 = col_character(),
  X8 = col_character(),
  X9 = col_integer(),
  X10 = col_character()
)
# A tibble: 5 × 10
           X1      X2       X3    X4    X5             X6    X7    X8    X9         X10
        <chr>   <dbl>    <dbl> <dbl> <chr>          <chr> <chr> <chr> <int>       <chr>
1 CQC00914080 15.2136 145.7497 252.1    MP CAPITOL HILL 1                NA TRADITIONAL
2 CQC00914801 14.1717 145.2428 179.2    MP        ROTA AP             91221 TRADITIONAL
3 FMC00914395  5.3544 162.9533   2.1    FM         KOSRAE             91355 TRADITIONAL
4 FMC00914419  5.5167 153.8167   1.5    FM       LUKUNOCH                NA TRADITIONAL
5 FMC00914446  9.6053 138.1786  14.9    FM           MAAP                NA TRADITIONAL
readr::read\u表(url,skip=2,n\u max=5,col\u names=FALSE)
科尔斯(
X1=列字符(),
X2=col_double(),
X3=col_double(),
X4=col_double(),
X5=列字符(),
X6=列字符(),
X7=列字符(),
X8=列字符(),
X9=列整数值(),
X10=列字符()
)
#一个tibble:5×10
x1x2x3x4x5x6x7x8x9x10
1 CQC00914080 15.2136 145.7497 252.1 MP国会山1 NA传统
2 CQC00914801 14.1717145.2428179.2 MP ROTA AP 91221传统
3 FMC00914395 5.3544 162.9533 2.1 FM KOSRAE 91355传统
4 FMC00914419 5.5167 153.8167 1.5 FM LUKUNOCH NA传统
5 FMC00914446 9.6053 138.1786 14.9 FM MAAP NA传统

看起来像一个固定宽度的文件,可以使用
?read.fwf
对其进行适当处理。以下是导入文件时似乎可以使用的完整行:

read.fwf(url, widths=c(11,9,10,7,4,31,3,10,13), strip.white=TRUE, comment.char="")

comment.char=”“
是必需的,因为文本文件中有
#
字符,这些字符被R解释为注释字符。这使得某些行抛出错误,因为它找不到需要的所有列。

看起来像一个固定宽度的文件,可以使用
?read.fwf
对其进行适当处理。以下是导入文件时似乎可以使用的完整行:

read.fwf(url, widths=c(11,9,10,7,4,31,3,10,13), strip.white=TRUE, comment.char="")

comment.char=”“
是必需的,因为文本文件中有
#
字符,这些字符被R解释为注释字符。这使得某些行抛出错误,因为它找不到需要的所有列。

有时我觉得自己像个真正的白痴。谢谢你,朋友!有时候我觉得自己像个白痴。谢谢你,朋友!看起来像是一个固定宽度的文件-参见
?read.fwf
我以前没有见过,但这非常有用。谢谢你的提示!看起来像是一个固定宽度的文件-参见
?read.fwf
我以前没有见过,但这非常有用。谢谢你的提示!我也非常喜欢这个解决方案,即使它需要少量的额外工作。再次感谢!我也非常喜欢这个解决方案,即使它需要少量的额外工作。再次感谢!