【问题标题】:Remove, replace special characters when importing csv files in R在R中导入csv文件时删除,替换特殊字符
【发布时间】:2021-08-09 07:07:15
【问题描述】:

当导入 csv 格式的数据时,一些观察值包含特殊字符,如下图所示。 我想知道如何消除、替换它们或任何允许我使用它们的方法。由于在 Shiny 中它会引发以下错误:

Warning: Error in sub: input string 1 is invalid UTF-8
  [No stack trace available]

我试过这段代码,但它对数据没有影响。

data %>%
  mutate_all(funs(gsub("[[:punct:]]", "", .)))

我将不胜感激任何指导。谢谢!

【问题讨论】:

  • 图片不是共享数据/代码的正确方式。以更易于复制的可复制格式添加它们。阅读how to give a reproducible example
  • 您认为什么是“特殊字符”?您需要确保知道用于存储字符数据的编码并在读取数据时指定该编码。从图像中无法判断发生了什么。

标签: r csv shiny utf-8


【解决方案1】:

如果没有更多详细信息,我只能提供一个基于 janitor 包的示例,它可能会对您有所帮助:

library(tidyverse)
library(janitor)

test_df <- tibble("test_µ" = c(1,2,3), 
                  "test_%23ñ" = c("fesfñUaâ", "fesââçç", "ËÔ†"), 
                  "test_normal" = c("wordsñ", "£Ÿüõ", "ÁÑ¿F"))

test_df
#> A tibble: 3 x 3
#>  test_µ `test_%23ñ` test_normal
#>   <dbl> <chr>       <chr>      
#>1      1 fesfñUaâ    wordsñ     
#>2      2 fesââçç     £Ÿüõ       
#>3      3 ËÔ†         ÁÑ¿F      

cleaned_df <- test_df %>% 
  clean_names() %>% 
  mutate(across(everything(), ~ make_clean_names(.)))

cleaned_df
# A tibble: 3 x 3
  test_m test_percent_23n test_normal
  <chr>  <chr>            <chr>      
1 x1     fesfn_uaa        wordsn     
2 x2     fesaacc          yuo        
3 x3     eo               an_f    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 2015-09-28
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    相关资源
    最近更新 更多