Импорт txt-файла в R Studio включает нежелательные символы спецификации 

Когда я импортировал следующие данные, сохраненные в виде Txt-файла с кодировкой UTF-8

1   test1
1   test2
2   test1
2   test3

В R-Studio у меня были проблемы с отображением символов BOM "ï"¿" в результирующей таблице. Ниже приведен код, который я использовал для импорта данных.

library(arules)
library(arulesViz)

txn <- read.transactions("r-test.txt",rm.duplicates= FALSE,format="single",sep="\t",cols = c(1,2))
inspect(txn)

В результате импорт выглядел следующим образом:

  items         transactionID
1 {test2}       1            
2 {test1,test3} 2            
3 {test1}       1 

person TsTeaTime    schedule 24.03.2016    source источник


Ответы (2)


Я обнаружил, что сохранение файла в виде текстового файла с кодировкой ANSI устранило проблему.

  items         transactionID
1 {test1,test2} 1            
2 {test1,test3} 2  

Вы можете использовать следующий код r studio для преобразования файла в формат ANSI:

writeLines(iconv(readLines("Old File Name"), from = "UTF8", to = "ANSI_X3.4-1986"), 
           file("New File Name", encoding="ANSI_X3.4-1986"))

Надеюсь, это поможет кому-то еще, если у них есть такая же проблема.

person TsTeaTime    schedule 24.03.2016

read.transactions также имеет аргумент кодировки. Попробуйте установить "UTF8"

read.transactions(file, format = c("basket", "single"), sep = "",
              cols = NULL, rm.duplicates = FALSE, 
              quote = "\"'", skip = 0, 
              encoding = "unknown")
person Michael Hahsler    schedule 25.03.2016
comment
Привет, Майкл, я действительно пытался использовать кодировку, установленную на UTF8, а также UTF8 со спецификацией. Однако оба они не исправили проблему. Спасибо за ответ и дайте мне знать, работает ли кодировка для вас. - person TsTeaTime; 27.03.2016
comment
Похоже, мне нужно добавить кодировку также для сканирования в read.transactions. Я постараюсь сделать это в разрабатываемой версии arules на github. Не совсем уверен, что это решит проблему. - person Michael Hahsler; 29.03.2016
comment
Спасибо, это должно работать идеально. Я попробую, как только он будет добавлен. - person TsTeaTime; 29.03.2016