Tôi có một cơ sở dữ liệu chứa tên của các cầu thủ Premiership mà tôi đang đọc vào R (3.02), nhưng tôi gặp phải những khó khăn khi nói đến người chơi có nhân vật nước ngoài trong tên của họ (dấu, dấu trọng âm, vv). Đoạn mã dưới đây minh họa điều này:Đọc các ký tự nước ngoài
PlayerData<-read.table("C:\\Users\\Documents\\Players.csv",quote=NULL, dec = ".",,sep=",", stringsAsFactors=F,header=T,fill=T,blank.lines.skip = TRUE)
Test<-PlayerData[c(33655:33656),] #names of the players here are "Cazorla" "Özil"
Test[Test$Player=="Cazorla",] #Outputs correct details
Test[Test$Player=="Ozil",] # Can not find data '0 rows> (or 0-length row.names)'
<
#Example of how the foreign character is treated:
substr("Özil",1,1)
[1] "Ã"
substr("Özil",1,2)
[1] "Ö"
substr("Özil",2,2)
[1] "
substr("Özil",2,3)
[1] "z
Tôi đã cố gắng thay thế các nhân vật, như mô tả ở đây: R: Replacing foreign characters in a string, nhưng như các ký tự có dấu trong ví dụ của tôi xuất hiện để được đọc như hai nhân vật riêng biệt Tôi không nghĩ rằng nó hoạt động.
Tôi sẽ biết ơn vì bất kỳ đề xuất hoặc cách giải quyết nào.
Tệp có sẵn để tải xuống here.
Bạn có thể đặt hai dòng CSV của mình ở đâu đó trên mạng không? Có thể 'iconv' có thể giúp bạn. –
Điều này đòi hỏi một câu trả lời dài hơn nhiều (hầu hết là ngoài chuyên môn của tôi), nhưng hãy thử chuyển đổi mọi thứ thành UTF-8: 'Test $ Player <- iconv (Test $ Player, to = 'UTF-8')'. Xem liệu việc lập chỉ mục có hoạt động như mong đợi hay không. Nếu bạn không ép buộc mã hóa, các chuỗi ký tự sẽ được diễn giải tùy thuộc vào ngôn ngữ hệ thống của bạn (các ví dụ bạn cung cấp đã làm việc như mong đợi trên hệ thống của tôi). – ilir