用“。”字符拆分行名,并在r中放入新列

时间:2016-06-26 08:15:09

标签: r split

输入:

df = data.frame(1:3)
rownames(df) <- c("a.bzz.-11", "bb.c.44", "cdd.d.3")

预期产出:

            X1.5    col1    col2    col3
a.bzz.-11   1      a        bzzz    -11
bb.c.44      2     bb       c       44
cdd.d.3     3      cdd      d       3

有一些有趣的讨论here,但在我的案例中却没有。提前谢谢。

1 个答案:

答案 0 :(得分:4)

我们可以使用read.table使用分隔符.将行名称读入三列。

cbind(df, read.table(text=row.names(df), sep=".", 
          header=FALSE, col.names = paste0("col", 1:3), stringsAsFactors=FALSE))
#          X1.3 col1 col2 col3
#a.bzz.-11    1    a  bzz  -11
#bb.c.44      2   bb    c   44
#cdd.d.3      3  cdd    d    3