各位好:
我使用readr::read_csv讀取csv檔
ex:a <- read_csv("xxx.csv")
按下enter後出現幾行字:
Parsed with colum specification:
cols(
`<U+FEFF>id` = col_character(),
...
)
當時沒有想太多, 因為View(a)看起來都很正常
接著要把 a 跟其他的 dataFrame merge的時候總是會出現錯誤:
Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column
用dplyr::left_join()則是會出現:
Error in left_join_impl(x, y, by$x, by$y, suffix$x, suffix$y) :
'id' column not found in rhs, cannot join
懷疑應該是那個`<U+FEFF>id`在作怪
用關鍵字找到這篇
https://github.com/tidyverse/readr/issues/263
不過看完還是不知道發生了甚麼事[email protected]@a
不曉得有人可以協助解釋嗎?
1. UTF-8-BOM 跟 UTF-8 的差別? (之前讀csv檔從來沒注意過有這個問題)
2. R 要怎麼正確的讀取 UTF-8-BOM 的檔案呢?
任何觀念的釐清小弟都很歡迎
先謝謝各位了!!!
ps.
最後我是用很笨的方法
a <- a %>% select(id=`<U+FEFF>id`...)
把欄位改名後就可以成功merge(但還是想知道大家遇到這問題都怎麼處理的)
補充:
用names(a), colnames(a), summary(a)看起來欄位都顯示正常
不過head(a)會顯示以下的東西
# A tibble: 6 × 5
`<U+FEFF>id`
<chr>
......