R将表重塑成矩阵

时间:2015-11-17 19:00:51

标签: r

我最近刚开始使用R.

我有一张这样的表:

(dd <- read.table(header = TRUE, stringsAsFactors = FALSE,
                  text = "keywords kw1 kw2 kw3 kw4 count 
                  1        a   b   c   d   2
                  2        a   b   d    NA   3
                  3        d   e    NA    NA   2"))

#   keywords kw1 kw2  kw3  kw4 count
# 1        1   a   b    c    d     2
# 2        2   a   b    d <NA>     3
# 3        3   d   e <NA> <NA>     2

我想将其改为:

keywords a   b   c   d   e  count 
  1      1   1   1   1   0  2
  2      1   1   0   1   0  3
  3      0   0   0   1   1  2

我试图搜索它,但没有找到答案。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我们可以使用mtabulate

library(qdapTools)
df2 <- cbind(dd[1],mtabulate(as.data.frame(t(dd[grep('^kw', 
           names(dd))]))), dd['count'])
row.names(df2) <- NULL
df2
#  keywords a b c d e count
#1        1 1 1 1 1 0     2
#2        2 1 1 0 1 0     3
#3        3 0 0 0 1 1     2