Объединить списки строк различной длины в кадр данных - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть текстовые данные, которые нуждаются в исправлении английских ошибок.

Я хочу вывод таблицы, в первом столбце указаны ошибки и все предложения по исправлению во втором столбце.

Например:

sentence <- "This is a word but thhis isn't and this onne as well. I need hellp"

library(hunspell)
mistakesList <- hunspell(essay)[[1]]
suggestionsList <- hunspell_suggest(mistakesList)

Я пытался

do.call(rbind, Map(data.frame, A=mistakesList, B=suggestionsList))

, но он возвращает

            A      B
thhis   thhis   this
onne.1   onne   none
onne.2   onne    one
onne.3   onne  tonne
onne.4   onne  Donne
onne.5   onne   once
onne.6   onne   Anne
onne.7   onne Yvonne
hellp.1 hellp  hello
hellp.2 hellp   hell
hellp.3 hellp   help
hellp.4 hellp hell p

Я хочу кадр данных, который возвращает:

mistakes suggestions
thhis   this
onne    none one tonne Donne once Anne Yvonne
hellp   hello hell help hell p

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

это сработало:

  X1 <- do.call(rbind, Map(data.frame, mistakes = mistakesList, suggestions = suggestionsList))
  X1 

library(plyr)

  X2 <- ddply(X1, .(mistakes),summarize,
              suggestions = paste(suggestions, collapse=", "))
  X2


mistakes                                 suggestions
1 thhis                                        this
2  onne none, one, tonne, Donne, once, Anne, Yvonne
3 hellp                   hello, hell, help, hell p
0 голосов
/ 30 ноября 2018

Мы можем сохранить mistakesList как есть и преобразовать suggestionsList в значения, разделенные запятыми, используя toString.

data.frame(mistakes = mistakesList, suggestions = sapply(suggestionsList, toString))


#  mistakes                               suggestions
#1    thhis                                      this
#2     onne none, one, tonne, Donne, once, Anne, neon
#3    hellp                 hello, hell, help, hell p
...