Нет раз текст появляется в предложении - PullRequest
0 голосов
/ 21 сентября 2018

Существует фрейм данных, содержащий слова в предложении, как показано ниже.Мне нужен вывод, который не показывает, сколько раз каждое слово появляется. Column 1 Electronic, socket, clamp, cooler Actuator, cylinder, valve Hydraulic, electronic, cooler Actuator, Pnematic, cylinder, valve

Мне нужен следующий вывод Column 2 Column 3 Eletronic 2 Socket 1 clamp 1 cooler 2 actuator 2 cylinder 2 valve 2 Hydraulic 1 Electronic 1 Pneumatic 1

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вот базовая опция R.Мы можем попытаться использовать sapply с strsplit, чтобы сгенерировать список векторов символов, исходя из исходного содержимого CSV.Затем мы можем unlist этот список сгенерировать один вектор терминов, а затем агрегировать по терминам для генерации счетчиков.

df <- data.frame(v1=c("Electronic, socket, clamp, cooler",
                      "Actuator, cylinder, valve", "Hydraulic, electronic, cooler",
                      "Actuator, Pnematic, cylinder, valve"), stringsAsFactors=FALSE)
out <- unlist(sapply(df$v1, function(x) { strsplit(x, ",\\s*") }))
aggregate(out, by=list(col2=out), FUN=length)

         col2 x
1    Actuator 2
2  Electronic 1
3   Hydraulic 1
4    Pnematic 1
5       clamp 1
6      cooler 2
7    cylinder 2
8  electronic 1
9      socket 1
10      valve 2

Обратите внимание, что хранение ненормализованных данных CSV в R (или на самом деле любом инструменте данных)) не является оптимальным и затруднит работу с этими данными.

Редактировать:

В приведенном выше коде предполагается, что столбец v1 имеет символ , а не фактор.Код не будет работать с факторными данными и вызовет ошибку «не символьный аргумент».

0 голосов
/ 21 сентября 2018

Предполагается, что он читается так и отформатирован так:

x <- read.table(text="'Column 1'
'Electronic, socket, clamp, cooler'
'Actuator, cylinder, valve'
'Hydraulic, electronic, cooler'
'Actuator, Pnematic, cylinder, valve'", header = TRUE)

data.frame(table(unlist(strsplit(x[,1], ","))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...