подмножество R data.table, разделенного пустыми строками - PullRequest
1 голос
/ 07 апреля 2020

Я пытаюсь извлечь и очистить данные из файлов Excel с помощью R. Некоторые из этих файлов Excel содержат несколько структур таблиц (разделенных пустыми строками), которые я хотел бы разделить на несколько таблиц data.tables.

Я просто пытаюсь вернуть индексы строк, которые являются полностью пустыми, используя:

blankrows <- which(all(is.na(tempdata)), arr.ind = TRUE)

, который я мог бы затем использовать для подмножества данных («tempdata» - это data.table)

Если я просто использую is.na(tempdata), я получаю все индексы, которые имеют какие-либо значения NA (а это не то, что я хочу), но когда я использую all(), я не получаю никаких, даже если есть определенно пустые строки. Я, вероятно, неправильно понимаю одну или обе эти функции, но, насколько я понимаю, is.na() возвращает вектор логических переменных и all() должен возвращать true, если все они истинны.

1 Ответ

0 голосов
/ 08 апреля 2020

Мы можем создать логический индекс с is.na и Reduce, преобразовать его в число c, накапливая сумму и split данные в list наборов данных

i1 <- dt[, Reduce(`&`, lapply(.SD, is.na))] 
split(dt, cumsum(i1))
...