У меня есть таблица выглядит следующим образом:Преобразование запятыми список для фиктивных переменных
yel <- data.table(id=c(1,2,3))
yel$names[1] <- "\"parking space\", \"dining\", \"3bh\""
yel$names[2] <- "\"parking\" , \"outdoor\""
yel$names[3] <- "\"Hello!\",\"dining room\",\"3bh\""
yel
id names
1: 1 "parking space", "dining", "3bh"
2: 2 "parking" , "outdoor"
3: 3 "Hello!","dining room","3bh"
Я был dummify в имена переменных и присоединиться те же слова, как места для парковки с парковкой, а также столовая с столовой.
Я хочу, чтобы фиктивные переменные были следующими: парковка, столовая, 3bh, наружная, привет. Есть ли способ, который это делает?
Наименее хорошо определенный бит, кажется, * «присоединиться одни и те же слова, как места для парковки с парковкой, а также столовая комната с кухонным» * - с '' parkingspace' и diningroom' в качестве результатов. Можете ли вы сформулировать правила более точно? Можем ли мы обобщить, что если есть фраза из 2 слов, любая запись, соответствующая первому слову, должна также получить второе слово, а затем пространство должно быть удалено? Есть ли случаи, когда второе слово отличается? Что произойдет, если будут и «парковочное место» и «парковка»? – Gregor
@ Грегор очень жаль, что не ясна. Я хотел бы перефразировать его «присоединить похожие слова, такие как« парковочное место »и« автостоянка »к« парковке ». Помогло бы это? –
Если данные такие простые, то вы можете просто удалить все после первого слова. что-то вроде 'library (splitstackshape), dcast (cSplit (yel," names ",", "," long ") [, names: = gsub ('\\" |. *', "", names)], id ~ names, fun.aggregate = length) '? – A5C1D2H2I1M1N2O1R2T1