我最近刚开始使用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
我试图搜索它,但没有找到答案。 提前谢谢。
答案 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