2012-11-28 11 views
16

Cách tối ưu để loại bỏ dấu trọng âm của Đức (hoặc tiếng Pháp) khỏi vec tơ 16 triệu biến chuỗi.Chuyển đổi các ký tự có dấu trọng âm thành ký tự ascii

ví dụ: 'hội chứng Sjogren' thành 'Sjogren hội chứng'

converstion của nhân vật duy nhất vào một nhân vật duy nhất là tốt hơn sau đó phiên âm như

ä => ae ö => oe ü => ue.

ví dụ: sử dụng cụm từ thông dụng sẽ là một tùy chọn nhưng có cái gì tốt hơn (gói R cho điều này) không?

gsub('ü','u',gsub('ö','o',"Sjögren's syndrome (über) "))

Có SO giải pháp cho nền tảng không-R nhưng không phải là một trong những tốt cho R.

+1

Xem câu trả lời cho thi s bài: [stackoverflow.com/questions/23699271/force-character-vector-encoding-from-unknown-to-utf-8-in-r][1] [1]: http://stackoverflow.com/questions/23699271/force-character-vector-encoding-from-unknown-to-utf-8-in-r –

+0

Xem câu trả lời cho bài đăng này: [http://stackoverflow.com/questions/23699271/force-character-vector-encoding-từ-unknown-to-utf-8-in-r] [1] [1]: http://stackoverflow.com/questions/23699271/force- character-vector-encoding-from-unknown-to-utf-8-in-r –

Trả lời

21

Sử dụng iconv để chuyển đổi để ASCII với phiên âm (nếu được hỗ trợ):

iconv(c("über","Sjögren's"),to="ASCII//TRANSLIT") 
[1] "uber"  "Sjogren's" 
+1

cho các ký tự có dấu, ví dụ'', điều này sẽ dẫn đến một cái gì đó trông giống như ''e'. Chạy lệnh này trên vectơ đầu ra của thao tác trên: 'out <- gsub (" \\ '",' ', out)' – Aaron

14

Một trong những câu trả lời được liên kết đề xuất

library(stringi) 
stri_trans_general("Zażółć gęślą jaźń", "Latin-ASCII") 

[1] "Zazolc gesla jazn"