r - объединить строки в фрейме данных, удалив пустые места - PullRequest
0 голосов
/ 27 июня 2018

Этот вопрос похож на этот здесь , но не тот же. У меня очень большой и грязный фрейм данных из старого документа OCR. Он полон пустых значений, которые мне нужно свернуть, чтобы сформировать объединенные строки. Возьмите следующий пример:

DF <- data.frame(
  Col1 = c("Egg", "", ""),
  Col2 = c("", "Flour", ""),
  Col3 = c("", "", "Bread"),
  Col4 = c("4", "", ""),
  Col5 = c("", "6", "8")
)

> DF
  Col1  Col2  Col3 Col4 Col5
1  Egg                4     
2      Flour               6
3            Bread         8

Как удалить пустые значения информационного кадра для формирования консолидированных строк? Желаемый вывод выглядит так:

> DF
  Col1    Col2
1  Egg    4     
2  Flour  6
3  Bread  8

Фактический фрейм данных очень большой со строками, содержащими различное количество пустых значений.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

пока еще один подход к реализации того же

library(dplyr)

df<-do.call("paste", DF)%>%as.data.frame()

df<- df%>%
  transmute(x1= df[[1]]%>%str_extract("[A-z]+"),
            x2 = df[[1]]%>%str_extract("\\d+"))
df

#     x1 x2
#1   Egg  4
#2 Flour  6
#3 Bread  8

@ mtoto все еще стоит больше кредитов

0 голосов
/ 27 июня 2018

Вот вариант с coalesce() из dplyr:

library(dplyr)
DF[DF==""] <- NA # replace empty strings by NA
data.frame(Col1 = coalesce(!!! DF), Col2 = coalesce(!!! rev(DF)))
#   Col1 Col2
#1   Egg    4
#2 Flour    6
#3 Bread    8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...