R - Преобразование таблицы в список для экспорта в CSV построчно для каждой ячейки - PullRequest
0 голосов
/ 28 февраля 2020

Я работаю над решением экспорта таблицы в R, так как табуляция остановлена ​​csv-файлом, где каждая ячейка в таблице определяется строкой в ​​файле экспорта. Я уже искал подобные проблемы, но нашел только решения для чтения данных в таблицу, но не экспортировал их с необходимой структурой.

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

Теперь мне не удается написать код, который генерирует желаемую структуру экспорта.

Требуемый вывод должен выглядеть следующим образом:

  • ID0001 Масло

  • ID0001 Желе

  • ID0001 Арахис

  • ID0002 Арахис

  • ID0003 Масло

  • ID0004 Буря

  • ID0005 Масло

  • ID0005 Буря

  • ID0005 Ветер

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

Надеюсь, кто-то может мне помочь с кодом. Я благодарен за любой совет (пример кода, пакеты и т. Д. c.)

#Generate Test data
df_TEST <- structure(list(ID = c("ID0001", "ID0002", "ID0003", "ID0004", 
                            "ID0005"), strings = c("Peanut Butter Jelly", "Peanut", "Butter", 
                                                   "Storm", "Storm Wind Butter")), class = "data.frame", row.names = c(NA, -5L))

#Get all unique words
all_words <- sort(unique(unlist(strsplit(df_TEST$strings, "\\W"))))

#Generate table
df_Result<-cbind(df_TEST, sapply(all_words, function(x) 1 * grepl(x, df_TEST$strings)))

#MISSING: Generate structure for output

#Code for csv-Export with tabstopp (done)

1 Ответ

0 голосов
/ 28 февраля 2020

Может быть, вы можете попробовать базовый код R ниже

word_list <- Map(unique,strsplit(df_TEST$strings,"\\W"))

dfout <- data.frame(ID = rep(df_TEST$ID,lengths(word_list)),
                    Word = unlist(word_list))

такой, что

> dfout
      ID   Word
1 ID0001 Peanut
2 ID0001 Butter
3 ID0001  Jelly
4 ID0002 Peanut
5 ID0003 Butter
6 ID0004  Storm
7 ID0005  Storm
8 ID0005   Wind
9 ID0005 Butter
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...