Вот базовая опция 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
имеет символ , а не фактор.Код не будет работать с факторными данными и вызовет ошибку «не символьный аргумент».