1つのデータフレームに特殊文字が含まれていて、他のデータフレームに含まれていないテーブルに一致する問題が発生します。例:ここではñドニャアナ郡対アナ郡R: "特殊"文字をUTF-8に変換しますか?
は、あなたが出力を再現できるスクリプトですか:
library(tidyverse)
library(acs)
tbl_df(acs::fips.place) # contains "Do\xf1a Ana County"
tbl_df(tigris::fips_codes) # contains "Dona Ana County"
例:
tbl_df(tigris::fips_codes) %>% filter(county == "Dona Ana County")
リターン:
# A tibble: 1 x 5
state state_code state_name county_code county
<chr> <chr> <chr> <chr> <chr>
1 NM 35 New Mexico 013 Dona Ana County
は残念ながら、次のクエリは何も返さない:R Studioでのデータフレームを開くときに
tbl_df(acs::fips.place) %>% filter(COUNTY == "Do\xf1a Ana County")
tbl_df(acs::fips.place) %>% filter(COUNTY == "Doña Ana County")
tbl_df(acs::fips.place) %>% filter(COUNTY == "Dona Ana County")
# A tibble: 0 x 7
# ... with 7 variables: STATE <chr>, STATEFP <int>, PLACEFP <int>, PLACENAME <chr>, TYPE <chr>, FUNCSTAT <chr>, COUNTY <chr>
はしかし、それは示しています
は質問1:なぜ2番目のクエリは、ノーリターンが得られていないん、 "Do \ xf1a Ana County"はデータベースに表示されますか?
質問2:どのように私はN、または同様に、このようなñなど、すべての "特別な" 文字を変換することができます(UTF-8?)?すべての文字のルールを定義するのではなく、ヘッダまたは定義のライブラリまたはスニペットがありますか?私は両方のテーブルの特定の列を一致させるために、これをとにかく実行しなければなりません。
ありがとうございました!
問題は 'acs :: fips.place'がひどく混乱していることです。 '\\ xf1a'は何も意味しません。 '\ xf1a'は' latin1'エンコーディングでは行いますが、一方から他方への変換は難しいです。もし私があなただったら、私は 'acs'パッケージのマンテイナにバグを報告するでしょう。 – Ista