Skip to content

Instantly share code, notes, and snippets.

@TobCap
Last active May 3, 2018 01:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TobCap/eacd196d99431e79237ea1f5c98e5c91 to your computer and use it in GitHub Desktop.
Save TobCap/eacd196d99431e79237ea1f5c98e5c91 to your computer and use it in GitHub Desktop.
Sys.setenv(LANG="C") # for english error message on Windows
library(tidyverse)
#> Warning: package 'tidyverse' was built under R version 3.4.4
#> Warning: package 'tibble' was built under R version 3.4.4
#> Warning: package 'tidyr' was built under R version 3.4.4

#sessionInfo()
#with(R.version, print(c(platform, version.string)))

Sys.getlocale()
#> [1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"

df1 <- structure(
  list(Eng = 1:3, 日本語 = 4:6),
  .Names = c("Eng", "日本語"),
  row.names = c(NA, -3L),
  class = c("tbl_df", "tbl", "data.frame"))

df2 <- read_csv(
"Eng,日本語
1,4
2,5
3,6", locale = locale(encoding = "cp932"))

attr(df2, "spec") <- NULL # remove redundant attribute

## This returns TRUE but internal character set is dirrerent! see details by using `.Internal(inspect(...))`
identical(df1, df2)
#> [1] TRUE

Encoding(names(df1))
#> [1] "unknown" "unknown"
Encoding(names(df2))
#> [1] "unknown" "UTF-8"

df1 %>% select(`Eng`) # run
#> # A tibble: 3 x 1
#>     Eng
#>   <int>
#> 1     1
#> 2     2
#> 3     3

df2 %>% select(`Eng`) # run
#> # A tibble: 3 x 1
#>     Eng
#>   <int>
#> 1     1
#> 2     2
#> 3     3


df1 %>% select(`日本語`) # run
#> # A tibble: 3 x 1
#>   日本語
#>    <int>
#> 1      4
#> 2      5
#> 3      6

df2 %>% select(`日本語`) # Error in FUN(X[[i]], ...) : object '日本語' not found
#> Error in FUN(X[[i]], ...): object '日本語' not found

names(df2) <- enc2native(names(df2))

df2 %>% select(`日本語`) # run
#> # A tibble: 3 x 1
#>   日本語
#>    <int>
#> 1      4
#> 2      5
#> 3      6

Created on 2018-05-03 by the reprex package (v0.2.0).

Session info
devtools::session_info()
#> Session info -------------------------------------------------------------
#>  setting  value                       
#>  version  R version 3.4.3 (2017-11-30)
#>  system   x86_64, mingw32             
#>  ui       RTerm                       
#>  language (EN)                        
#>  collate  Japanese_Japan.932          
#>  tz       Asia/Tokyo                  
#>  date     2018-05-03
#> Packages -----------------------------------------------------------------
#>  package    * version date       source        
#>  assertthat   0.2.0   2017-04-11 CRAN (R 3.4.2)
#>  backports    1.1.2   2017-12-13 CRAN (R 3.4.3)
#>  base       * 3.4.3   2017-12-06 local         
#>  bindr        0.1.1   2018-03-13 CRAN (R 3.4.4)
#>  bindrcpp     0.2.2   2018-03-29 CRAN (R 3.4.4)
#>  broom        0.4.4   2018-03-29 CRAN (R 3.4.4)
#>  cellranger   1.1.0   2016-07-27 CRAN (R 3.4.2)
#>  cli          1.0.0   2017-11-05 CRAN (R 3.4.2)
#>  colorspace   1.3-2   2016-12-14 CRAN (R 3.4.2)
#>  compiler     3.4.3   2017-12-06 local         
#>  crayon       1.3.4   2017-09-16 CRAN (R 3.4.2)
#>  datasets   * 3.4.3   2017-12-06 local         
#>  devtools     1.13.5  2018-02-18 CRAN (R 3.4.3)
#>  digest       0.6.15  2018-01-28 CRAN (R 3.4.3)
#>  dplyr      * 0.7.4   2017-09-28 CRAN (R 3.4.2)
#>  evaluate     0.10.1  2017-06-24 CRAN (R 3.4.2)
#>  forcats    * 0.3.0   2018-02-19 CRAN (R 3.4.3)
#>  foreign      0.8-69  2017-06-22 CRAN (R 3.4.3)
#>  ggplot2    * 2.2.1   2016-12-30 CRAN (R 3.4.2)
#>  glue         1.2.0   2017-10-29 CRAN (R 3.4.2)
#>  graphics   * 3.4.3   2017-12-06 local         
#>  grDevices  * 3.4.3   2017-12-06 local         
#>  grid         3.4.3   2017-12-06 local         
#>  gtable       0.2.0   2016-02-26 CRAN (R 3.4.2)
#>  haven        1.1.1   2018-01-18 CRAN (R 3.4.4)
#>  hms          0.4.2   2018-03-10 CRAN (R 3.4.4)
#>  htmltools    0.3.6   2017-04-28 CRAN (R 3.4.2)
#>  httr         1.3.1   2017-08-20 CRAN (R 3.4.2)
#>  jsonlite     1.5     2017-06-01 CRAN (R 3.4.2)
#>  knitr        1.20    2018-02-20 CRAN (R 3.4.3)
#>  lattice      0.20-35 2017-03-25 CRAN (R 3.4.3)
#>  lazyeval     0.2.1   2017-10-29 CRAN (R 3.4.2)
#>  lubridate    1.7.4   2018-04-11 CRAN (R 3.4.4)
#>  magrittr     1.5     2014-11-22 CRAN (R 3.4.2)
#>  memoise      1.1.0   2017-04-21 CRAN (R 3.4.3)
#>  methods    * 3.4.3   2017-12-06 local         
#>  mnormt       1.5-5   2016-10-15 CRAN (R 3.4.1)
#>  modelr       0.1.1   2017-07-24 CRAN (R 3.4.2)
#>  munsell      0.4.3   2016-02-13 CRAN (R 3.4.2)
#>  nlme         3.1-137 2018-04-07 CRAN (R 3.4.4)
#>  parallel     3.4.3   2017-12-06 local         
#>  pillar       1.2.1   2018-02-27 CRAN (R 3.4.3)
#>  pkgconfig    2.0.1   2017-03-21 CRAN (R 3.4.2)
#>  plyr         1.8.4   2016-06-08 CRAN (R 3.4.2)
#>  psych        1.8.3.3 2018-03-30 CRAN (R 3.4.4)
#>  purrr      * 0.2.4   2017-10-18 CRAN (R 3.4.2)
#>  R6           2.2.2   2017-06-17 CRAN (R 3.4.2)
#>  Rcpp         0.12.16 2018-03-13 CRAN (R 3.4.4)
#>  readr      * 1.1.1   2017-05-16 CRAN (R 3.4.2)
#>  readxl       1.0.0   2017-04-18 CRAN (R 3.4.2)
#>  reshape2     1.4.3   2017-12-11 CRAN (R 3.4.4)
#>  rlang        0.2.0   2018-02-20 CRAN (R 3.4.4)
#>  rmarkdown    1.9     2018-03-01 CRAN (R 3.4.3)
#>  rprojroot    1.3-2   2018-01-03 CRAN (R 3.4.3)
#>  rvest        0.3.2   2016-06-17 CRAN (R 3.4.2)
#>  scales       0.5.0   2017-08-24 CRAN (R 3.4.2)
#>  stats      * 3.4.3   2017-12-06 local         
#>  stringi      1.1.7   2018-03-12 CRAN (R 3.4.4)
#>  stringr    * 1.3.0   2018-02-19 CRAN (R 3.4.3)
#>  tibble     * 1.4.2   2018-01-22 CRAN (R 3.4.4)
#>  tidyr      * 0.8.0   2018-01-29 CRAN (R 3.4.4)
#>  tidyverse  * 1.2.1   2017-11-14 CRAN (R 3.4.4)
#>  tools        3.4.3   2017-12-06 local         
#>  utf8         1.1.3   2018-01-03 CRAN (R 3.4.3)
#>  utils      * 3.4.3   2017-12-06 local         
#>  withr        2.1.2   2018-03-15 CRAN (R 3.4.4)
#>  xml2         1.2.0   2018-01-24 CRAN (R 3.4.4)
#>  yaml         2.1.18  2018-03-08 CRAN (R 3.4.4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment