read_sf()とst_read()

st_read()とread_sf()

最近read_sf()という関数を知った。 st_read()との違いに関してメモ。

read_sf()の関数について確認すると以下のようになっており、 quiet=TRUE, stringsAsFactors=FALSEでデータを読み込んでいる。

library(sf)
library(dplyr)
read_sf
function (..., quiet = TRUE, stringsAsFactors = FALSE) 
{
    if (!requireNamespace("tibble", quietly = TRUE)) 
        stop("package tibble not available: install first?")
    st_as_sf(tibble::as_tibble(as.data.frame(st_read(..., quiet = quiet, 
        stringsAsFactors = stringsAsFactors))))
}
<environment: namespace:sf>
nc <- read_sf(system.file("shape/nc.shp", package="sf"))
glimpse(nc)
Observations: 100
Variables: 15
$ AREA      <dbl> 0.114, 0.061, 0.143, 0.070, 0.153, 0.097, 0.062, 0.0...
$ PERIMETER <dbl> 1.442, 1.231, 1.630, 2.968, 2.206, 1.670, 1.547, 1.2...
$ CNTY_     <dbl> 1825, 1827, 1828, 1831, 1832, 1833, 1834, 1835, 1836...
$ CNTY_ID   <dbl> 1825, 1827, 1828, 1831, 1832, 1833, 1834, 1835, 1836...
$ NAME      <chr> "Ashe", "Alleghany", "Surry", "Currituck", "Northamp...
$ FIPS      <chr> "37009", "37005", "37171", "37053", "37131", "37091"...
$ FIPSNO    <dbl> 37009, 37005, 37171, 37053, 37131, 37091, 37029, 370...
$ CRESS_ID  <int> 5, 3, 86, 27, 66, 46, 15, 37, 93, 85, 17, 79, 39, 73...
$ BIR74     <dbl> 1091, 487, 3188, 508, 1421, 1452, 286, 420, 968, 161...
$ SID74     <dbl> 1, 0, 5, 1, 9, 7, 0, 0, 4, 1, 2, 16, 4, 4, 4, 18, 3,...
$ NWBIR74   <dbl> 10, 10, 208, 123, 1066, 954, 115, 254, 748, 160, 550...
$ BIR79     <dbl> 1364, 542, 3616, 830, 1606, 1838, 350, 594, 1190, 20...
$ SID79     <dbl> 0, 3, 6, 2, 3, 5, 2, 2, 2, 5, 2, 5, 4, 4, 6, 17, 4, ...
$ NWBIR79   <dbl> 19, 12, 260, 145, 1197, 1237, 139, 371, 844, 176, 59...
$ geometry  <simple_feature> MULTIPOLYGON(((-81.47275543..., MULTIPOLY...

ということで、今後は基本的にはこの関数を利用したほうが便利そうである。

引数のdsn=が日本語を含むパスだとうまくいかないのですが、 解決方法をご存知の方ぜひコメント等教授お願いします。