aa7*_*762 7 r frequency reshape
这似乎是一个非常基本的R问题,但我很感激答案.我有一个以下形式的数据框:
col1 col2
a g
a h
a g
b i
b g
b h
c i
Run Code Online (Sandbox Code Playgroud)
我想将它转化为计数,所以结果将是这样的.我尝试过使用table()函数,但似乎只能获得一列的计数.
a b c
g 2 1 0
h 1 1 0
i 0 1 1
Run Code Online (Sandbox Code Playgroud)
我怎么在R?
我不太确定你用过什么,但table对我来说效果很好!
这是一个可重复性最小的例子:
df <- structure(list(V1 = c("a", "a", "a", "b", "b", "b", "c"),
V2 = c("g", "h", "g", "i", "g", "h", "i")),
.Names = c("V1", "V2"), class = "data.frame",
row.names = c(NA, -7L))
table(df)
# V2
# V1 g h i
# a 2 1 0
# b 1 1 1
# c 0 0 1
Run Code Online (Sandbox Code Playgroud)
笔记:
table(df[c(2, 1)])(或table(df$V2, df$V1))交换行和列.as.data.frame.matrix(table(df))得到一个data.frame作为输出.(as.data.frame将创建一个长的data.frame,而不是一个你想要的相同输出格式).