各位好:
我使用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>
......