sfクラスからSpatial*****DataFrameクラスへの変換

Rにおけるジオメトリデータの操作は今後sfパッケージが主流になるらしい。 http://notchained.hatenablog.com/entry/2017/01/06/213333

開発が活発なためせっかく整備したコードが今後も使えるという保証はないため, 利用に少しためらいもあるが,最近少し使っている。

sfクラスからSpatial***DataFrameクラスに変換する際のメモである。

通常は以下のようにas(., "Spatial")で従来のSpatial****DataFrameに変換することができる。

    > nc <- st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE)

    > > class(nc)
    [1] "sf"         "data.frame"

    > methods::as(nc, "Spatial") %>% class
    [1] "SpatialPolygonsDataFrame"
    attr(,"package")
    [1] "sp"

しかし,tbl_dfクラスも持つ場合にはエラーが生じてしまう。 その場合は以下のようにして,クラスをsf, data.frameにすると解決できる。

    nc %>%
    `class<-`(c("sf", "data.frame")) %>%
    methods::as(., "Spatial")

dplyrにおける文字コード問題が少しは改善されそう

Rにおける文字コードに関して多くの人々が悩まされている.

例えば,
http://notchained.hatenablog.com/entry/2016/04/29/222453

「Why are you using SJIS?」
「Why are you using UTF-8?」
2種類のことばがあり,処理によってうまく扱う必要があるという苦痛。

そんななか,ついに`dplyr`については,問題が解決するようである。
https://github.com/tidyverse/dplyr/pull/2382

issueには文字コードに関する問題外が多く寄せられているが`dplyr`では改善されないような雰囲気を感じていたが,
これまで悩まされていた文字コード問題が少しは?解決されるようでうれしい限りである。
Kirill Müllerさんに感謝。

現時点では新しいバージョンが出ていないので,
githubからインストールする必要がある。