Size: a a a

R language and Statistical data analysis

2019 December 25

A

Andrey in R language and Statistical data analysis
пакет zealot
источник

АК

Артём Клевцов in R language and Statistical data analysis
Артём Клевцов
Linux (ru_RU.UTF-8):
> rawToChar(charToRaw("Hello G\u00fcnter"))
[1] "Hello Günter"

Windows (Russian_Russia.1251):
> rawToChar(charToRaw("Hello G\u00fcnter"))
[1] "Hello GГјnter"

#WTF
В общем, на уровне представления данных (на уровне байт) - строки идентичны, но винда пытается представить строку в соответствие со своей локалью (и кодировкой) при выводе в консоль.
Есть пакет utf8, который костыльным образом призван облегчить жизнь страждущих.
В моём случае решением оказалось переход на побайтовое сравнение.
источник

AS

Alexander Semenov in R language and Statistical data analysis
Уважаемые, я тут читаю the fucking manual по cols{readr} и не могу понять, что нужно впихнуть в cols_only(): индексы нужных колонок или их названия? Да и куда впихнуть сам cols_only() пока тоже не понимаю. Задачка тривиальная -- прочитать из csv только нужные колонки.
источник

AS

Alexander Semenov in R language and Statistical data analysis
Почитал SO и смог осмыслить только вариант с импортом через sqldf, но он ломается на тех же строках, что их Excel/R.
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
ничего не понятно
дай датасет и код, что ли

тебе же в справке прямо дают cols_only() includes only the columns you explicitly specify, skipping the rest.

ну и вообще, чем тебе fread не нравится %(
источник

AS

Alexander Semenov in R language and Statistical data analysis
Дают, но не говорят, что нужно explicitly specify: индексы или имена колонок.
источник

AS

Alexander Semenov in R language and Statistical data analysis
Против fread ничего не имею. Как видишь отчаялся даже на sqldf.
источник

AS

Alexander Semenov in R language and Statistical data analysis
А отчаялся из-за непрозрачности механизма работы cols_only().
источник

AS

Alexander Semenov in R language and Statistical data analysis
И, судя по SO, не я один...
источник

AS

Alexander Semenov in R language and Statistical data analysis
Датасет бы дал, да это несекьюрно, а вынуть оттуда только секьюрное не могу, т.к. в этом и заключается суть задачи =)
источник

AS

Alexander Semenov in R language and Statistical data analysis
Вопрос-то кажется простым: есть csv, который ломается лишними /n в определённых местах. Хочется из 176 колонок, содержащихся в нём, выдернуть 5 нужных либо по индексу, либо по имени. В принципе сделать в Excel вектор ("NULL", NA, NA, "NULL"...) из 176 элементов я могу, но думал отделаться лёгким испугом.
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
Alexander Semenov
Вопрос-то кажется простым: есть csv, который ломается лишними /n в определённых местах. Хочется из 176 колонок, содержащихся в нём, выдернуть 5 нужных либо по индексу, либо по имени. В принципе сделать в Excel вектор ("NULL", NA, NA, "NULL"...) из 176 элементов я могу, но думал отделаться лёгким испугом.
какое извращение этот твой readr, прости господи
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
на, смотри
tmp <- tempfile()
write.csv(head(iris, 3), tmp, row.names = FALSE)

my_iris <- read.table(tmp, head = TRUE, sep = ',')
my_iris_dt <- data.table::fread(tmp, header = TRUE, select = c('Sepal.Length', 'Species'))
my_iris_readr <- readr::read_csv(tmp, col_types = paste(c('n', rep('_', 3), 'c'), collapse = ''))
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
Alexander Semenov
Вопрос-то кажется простым: есть csv, который ломается лишними /n в определённых местах. Хочется из 176 колонок, содержащихся в нём, выдернуть 5 нужных либо по индексу, либо по имени. В принципе сделать в Excel вектор ("NULL", NA, NA, "NULL"...) из 176 элементов я могу, но думал отделаться лёгким испугом.
мы такую проблему решали построчным чтением, заменой \n+  на \n и еще раз чтением
источник

АК

Артём Клевцов in R language and Statistical data analysis
Philipp Upravitelev
мы такую проблему решали построчным чтением, заменой \n+  на \n и еще раз чтением
fread  повзоляет исопльзовать баш команду для препроцессинга файла, в которую можно защить всю мощь баш-утлит, вроде sed, awk, cut, grep..
источник

AS

Alexander Semenov in R language and Statistical data analysis
Спасибо. Т.е. это не я так плох, а задачка всё-таки с подвохом.
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
Alexander Semenov
Вопрос-то кажется простым: есть csv, который ломается лишними /n в определённых местах. Хочется из 176 колонок, содержащихся в нём, выдернуть 5 нужных либо по индексу, либо по имени. В принципе сделать в Excel вектор ("NULL", NA, NA, "NULL"...) из 176 элементов я могу, но думал отделаться лёгким испугом.
если у тебя битый файл, то я не уверен, что он без спец.плясок будет хорошо читаться даже если поколоночно выжергивать данные
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
Alexander Semenov
Спасибо. Т.е. это не я так плох, а задачка всё-таки с подвохом.
тайди-новояз, заменяют своими демонстративно специфичными конструкциями то, что и так хорошо работает
ничего нового
источник

AS

Alexander Semenov in R language and Statistical data analysis
Да, ты прав, fread решил задачу отбора колонок наиболее элегантным способом. Но с поломанными строками он ожидаемо справиться не смог.
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
надо лечить
источник