неполная последняя строка, найденная readTableHeader в R - PullRequest
0 голосов
/ 12 октября 2018

я загружаю данные

read.table("path.txt", sep = "\t", header=TRUE, fileEncoding="UCS-2")

он содержит три строки

x         x2
MAKFA   МАКФА
makar   макароны
макар.  макароны

, но я получаю предупреждение

incomplete final line found by readTableHeader on 

и в качестве выходных данных мой набор данных (настоящий неполный)

      x x2
1 MAKFA МА

как решить эту проблему (мне нужно работать только с .txt)

structure(list(x = structure(1L, .Label = "MAKFA", class = "factor"), 
               x2 = structure(1L, .Label = "МА", class = "factor")), .Names = c("x", 
                                                                                "x2"), class = "data.frame", row.names = c(NA, -1L))

решение здесь Предупреждение «Неполная последняя строка» при попытке прочитать a.CSV-файл в R не работает

здесь ссылка для загрузки TXT-файла

https://dropmefiles.com/FfcC6

1 Ответ

0 голосов
/ 12 октября 2018

Это не может быть оптимальным, но это работает.Опора stringi на библиотеки ICU делает его отличным швейцарским армейским ножом для преодоления проблем с кодировкой.Когда я увидел, что vim может прочитать файл соответствующим образом, я решил попробовать его с stringi:

library(stringi)
library(docxtractr)

stri_read_lines("23.txt") %>% 
  stri_split_fixed("\t", simplify = TRUE) %>% 
  as.data.frame(stringsAsFactors=FALSE) %>% 
  docxtractr::assign_colnames(1)
##      old      new
## 1  MAKFA    МАКФА
## 2  makar макароны
## 3 макар. макароны
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...