将列级别设为新列R.

时间:2016-03-11 09:55:38

标签: r transpose levels

我有data table[1000+, 4]

其中一列有5 levels,我希望将这5个级别分为5个新列。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我们从感兴趣的列中提取levels(' ColN'),转换为list并将其分配给五个新的'列。

df1[paste0("new", 1:5)] <- as.list(levels(df1$ColN))
head(df1,2)
#    ColN Col2 Col3 new1 new2 new3 new4 new5
#1    C    7    a    A    B    C    D    E
#2    A    4    b    A    B    C    D    E
levels(df1$ColN)
#[1] "A" "B" "C" "D" "E"
数据
set.seed(48)
df1 <- data.frame(ColN= sample(LETTERS[1:5], 10, 
   replace=TRUE), Col2= sample(10), Col3= letters[1:10])