2015-07-24 6 views
0

У меня есть имена столбцов в моей dataframe mydfStrsplit COLNAMES и rbind в R

mycols<-("cc:dd:ee","gg:dd:ee","ff:gg:dd") 

мне нужно разделить их на «:» и rbind их на новые строки в моей таблице чуть ниже самого имени столбца, как показано ниже в result:

mydf

cc:dd:ee gg:dd:ee ff:gg:dd 
    2   4  4 
    2   4  4 

результат

cc:dd:ee gg:dd:ee ff:gg:dd 
    cc  gg  ff 
    dd  dd  gg 
    ee  ee  dd 
    2   4  4 
    2   4  4 
+6

Если вы не хотите, чтобы все ваши цифровые данные должны быть сохранены в качестве символа данных, это не очень хорошая идея. – thelatemail

ответ

1

Поскольку кадры данных действительно перечислены под капотом, вы можете достичь этого rbind-ки результаты strsplit имен столбцов:

df <- data.frame(c("2", "2"), c("4", "4"), c("4","4"), stringsAsFactors=FALSE) 
colnames(df) <- c("cc:dd:ee","gg:dd:ee","ff:gg:dd") 
df <- rbind(strsplit(colnames(df), ":"), df) 
+0

Почему я получаю эту ошибку:> df <- rbind (strsplit (colnames (df), ":"), df) Предупреждающие сообщения: 1: В '[<-. Factor' (' * tmp * ', ri, value = c ("cc", "dd", "ee")): Недопустимый коэффициент, генерируемый NA 2: В '[<-. factor' (' * tmp * ', ri, value = c («gg», «dd», «ee»)): Недопустимый коэффициент, генерируемый NA 3: В '[<-. factor' (' * tmp * ', ri, value = c (" ff ", «gg», «dd»)): Недопустимый уровень фактора, генерируемый NA – MAPK

+2

@ user277653 - столбцы data.frame в примере Скотта являются 'factor', которые принимают только ограниченный диапазон значений при замене. Попробуйте с помощью 'df <- data.frame (c (« 2 »,« 2 »), c (« 4 »,« 4 »), c (« 4 »,« 4 »), строкиAsFactors = FALSE) – thelatemail

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