2014-11-04 6 views
-2

переменной, используя У меня есть переменная в моем наборе данных, который выглядит следующим образом:Новые части строки переменной

IBM, Oracle, Ping 
IBM, Ping 
HP, IBM, Nagios 
Solarwinds, HP, Nagios 
BMC, Solarwinds, HP, IBM, Nagios, SCOM 

Я хочу, чтобы отделить каждую из этих компаний, и создать новые переменные для каждого из них. Например, я хочу, чтобы была другая переменная для IBM, Nagiog, SCOM и т. Д. Как мне это сделать?

+0

Недостаточно примера материала для работы с. (Это не я, это вопрос о том, что все вопросы отсутствуют без рабочих примеров.) –

+0

Благодарим вас за рекомендацию. Я новичок в R, поэтому до сих пор не знаю достаточно, чтобы задать правильные вопросы. Я буду держать этот ум в будущем! :) –

ответ

0

Мое чтение этого вопроса в том, что:

  1. У вас есть столбец в data.frame (скажем, под названием «компании»), который имеет разделенный запятыми строку компаний.
  2. Вы хотите разбить эти значения и создать столбцы для каждой уникальной компании.
  3. Я понятия не имею, что вы хотите заполнить этими столбцами, поэтому я предполагаю, что вы хотите создать двоичный или «присутствующий» индикатор какого-то рода.

Если мое прочтение верно, попробуйте cSplit_e из моего пакета "splitstackshape":

cSplit_e(mydf, "companies", ",", type = "character", mode = "binary", fill = 0) 
#        companies companies_BMC companies_HP companies_IBM 
# 1      IBM, Oracle, Ping    0   0    1 
# 2        IBM, Ping    0   0    1 
# 3      HP, IBM, Nagios    0   1    1 
# 4     Solarwinds, HP, Nagios    0   1    0 
# 5 BMC, Solarwinds, HP, IBM, Nagios, SCOM    1   1    1 
# companies_Nagios companies_Oracle companies_Ping companies_SCOM companies_Solarwinds 
# 1    0    1    1    0     0 
# 2    0    0    1    0     0 
# 3    1    0    0    0     0 
# 4    1    0    0    0     1 
# 5    1    0    0    1     1 

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

mydf <- data.frame(
    companies = c("IBM, Oracle, Ping", 
       "IBM, Ping", 
       "HP, IBM, Nagios", 
       "Solarwinds, HP, Nagios", 
       "BMC, Solarwinds, HP, IBM, Nagios, SCOM")) 

Существует также аргумент drop, который может быть t до TRUE, если вы хотите удалить исходную колонку.

Смежные вопросы