根据数据框列的名称创建分组变量

时间:2016-05-13 06:05:44

标签: r

我有DF名称列

DF
a     b
a.b   1
a.c   2
a.d   3
b.c   4
b.l   5
b.d   6
c.a   6
c.b   7

我需要在.DF$a之前创建一个包含符号的新列,以便

DF
    a     b   c
    a.b   1   a
    a.c   2   a
    a.d   3   a
    b.c   4   b
    b.l   5   b
    b.d   6   b
    c.a   6   c
    c.b   7   c

有可能吗?感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

我们可以使用sub匹配点字符(\\.),后跟一个或多个字符到字符串末尾,并替换为''

DF$c <- sub("\\..*$", "", DF$a)
DF$c
#[1] "a" "a" "a" "b" "b" "b" "c" "c"

或者

library(stringr)
str_extract(DF$a, "\\w+")