如何将一列因子分成多个因子的多列?

时间:2013-07-25 15:09:38

标签: r

假设我有一个如下所示的数据框:

Factor     Value
======     =====
1A.In      1.0
1A.Out     2.6
1B.In      0.5
1B.Out     3.4
2A.In      5.5

我的目标是在数据框中添加列,从单个Factor列中提取信息,如下所示:

Factor   Value   Fact1     Fact2     Fact3
======   =====   =====     =====     =====
1A.In    1.0     1         A         In  
1A.Out   2.6     1         A         Out
1B.In    0.5     1         B         In
1B.Out   3.4     1         B         Out
2A.In    5.5     2         A         In

我无法弄清楚如何在不使用子集广告的情况下执行此操作。我对R比较陌生,并且没有编程背景,所以任何建议都会非常感激。

1 个答案:

答案 0 :(得分:7)

请参阅?substr

within(df, {
    Fact1 <- substr(Factor, 1, 1)
    Fact2 <- substr(Factor, 2, 2)
    Fact3 <- substr(Factor, 4, 999)
})

我在这里假设每个新变量使用多少个字符。为了更加通用,您应该在Factor中使用某种常规结构,例如点作为所有变量的分隔符。