如何创建垂直排列的值 - 频率组合表,
> df = data.frame(fruit=c("apple", "banana", "cherry", "cherry", "apple", "banana", "apple", "date"));
> table(df$fruit)
apple banana cherry date
3 2 2 1
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但我喜欢这样的东西(例如基于频率的基本操作和值的子集化):
Fruit Freq
"apple" 3
"banana" 2
"cherry" 2
"date" 1
Run Code Online (Sandbox Code Playgroud)
在SQL中,那就是SELECT fruit, COUNT(*) AS Freq FROM df GROUP BY fruit,并且会产生一个类似于这个问题起点的表:https: //stats.stackexchange.com/questions/15574/how-to-convert-a-frequency-table-into-一个矢量-的值
在R中有一个简单的方法吗?(或者,这是否表明心态太'SQL'且不够'R'?)
data.frame(table(df))
# df Freq
# 1 apple 3
# 2 banana 2
# 3 cherry 2
# 4 date 1
Run Code Online (Sandbox Code Playgroud)
也许
setNames(data.frame(table(df)), c("Fruit", "Freq"))
# Fruit Freq
# 1 apple 3
# 2 banana 2
# 3 cherry 2
# 4 date 1
Run Code Online (Sandbox Code Playgroud)