我有一个数据集如下:
col1 col2
A 1
A 2
A 2
B 1
B 1
C 1
C 1
C 2
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
col1 col2 Frequency
A 1 1
A 2 2
B 1 2
C 1 2
C 2 1
Run Code Online (Sandbox Code Playgroud)
我尝试使用聚合函数和表函数,但我无法获得所需的结果.
您可以添加虚拟列或使用rownames
聚合来:
aggregate(rownames(mydf) ~ ., mydf, length)
# col1 col2 rownames(mydf)
# 1 A 1 1
# 2 B 1 2
# 3 C 1 2
# 4 A 2 2
# 5 C 2 1
Run Code Online (Sandbox Code Playgroud)
table
也可以正常工作,但会将可能不在您的数据中的组合报告为"0":
data.frame(table(mydf))
# col1 col2 Freq
# 1 A 1 1
# 2 B 1 2
# 3 C 1 2
# 4 A 2 2
# 5 B 2 0
# 6 C 2 1
Run Code Online (Sandbox Code Playgroud)
另一个不错的方法是使用"data.table":
library(data.table)
as.data.table(mydf)[, .N, by = names(mydf)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
76 次 |
最近记录: |