Отдельный коэффициент на столбцы R - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь seperate (tidyr) line_text в отдельные слова, поэтому одно слово в столбце:

Данные:

structure(list(ID = c(140L, 233L, 233L), 
pdf_name = structure(c(1L, 
2L, 2L), .
Label = c("GBD2016_2_1255_Venezuela_MoH_Epi_2012_9.pdf", 
"GBD2016_2_1351_Venezuela_MoH_Epi_2014_44.pdf"), 
class = "factor"), 
keyword = c("SEGÚN GRUPOS", "SEGÚN GRUPOS", "SEGÚN GRUPOS"
), line_text = list("2000 Gráfico 2 . CASOS DE MALARIA SEGÚN GRUPOS DE EDAD Y SEXO,                                                                                                                         EPIDEMIOLÓGICA 9 Año 2012", 
    "GRÁFICO 2. CASOS DE MALARIA SEGÚN GRUPOS DE EDAD Y SEXO, HASTA", 
    "GRÁFICO 2. CASOS DE            SEGÚN GRUPOS"), 
.Names = c("ID", "pdf_name", "keyword", 
"page_num", "line_num", "line_text", "token_text"), row.names = c(NA, 
-3L), class = "data.frame")

Кодирование используется:

numcols<- make.unique(c(rep("word",10, sep  = " ")) )

df<- reportdiagn%>%
 (separate(reportdiagn$line_text,
        into = numcols, 
        sep = ("")))

Я получаю следующую ошибку и не могу решить, как ее исправить.

`Error in UseMethod("separate_") : 
 no applicable method for 'separate_' applied to an object of class "factor

1 Ответ

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

Данные, которые вы вставили, не совсем верны. Может быть, стоит попробовать еще раз, но я все равно попытался воспроизвести ваши данные. Это может быть не совсем то же самое. Я установил для linetext символьную строку, но я думаю, что приведенный ниже код работает либо в символах, либо в коэффициентах.

В select() вам не нужно ссылаться на фрейм данных - %>% уже делает это, вам просто нужно имя переменной без кавычек. Кроме того, ваш sep должен быть пробелом или \\b для границы слова.

ID <- c(140, 233, 233)
pdf_name <- factor(c(1, 2, 2),
    labels = c(
        "GBD2016_2_1255_Venezuela_MoH_Epi_2012_9.pdf", 
        "GBD2016_2_1351_Venezuela_MoH_Epi_2014_44.pdf") 
)
keyword <- c("SEGÚN GRUPOS", "SEGÚN GRUPOS", "SEGÚN GRUPOS")
line_text <- c("2000 Gráfico 2 . CASOS DE MALARIA SEGÚN GRUPOS DE EDAD Y SEXO, EPIDEMIOLÓGICA 9 Año 2012", 
               "GRÁFICO 2. CASOS DE MALARIA SEGÚN GRUPOS DE EDAD Y SEXO, HASTA", 
               "GRÁFICO 2. CASOS DE SEGÚN GRUPOS.")
reportdiagn <- data.frame(ID, pdf_name, keyword, line_text)

numcols<- make.unique(c(rep("word",10 )) )

df <- reportdiagn %>%
    separate(line_text,
              into = numcols, 
              sep = " ")

Это дает некоторые значения NA, где меньше 10 слов, и сокращается, когда их больше. Я полагаю, вы ожидаете этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...