R 使 `table` 命令与附加的 `amount` 列一起工作
R make `table` command work with additional `amount` column
我正在使用 R 和这样的数据
data <- data.frame(name=c("dog", "cat", "steak", "dog", "mouse", "cat"), amount=c(1, 2, 2.5, 1, 4, 1))
因此我的数据看起来像这样
> data
name amount
1 dog 1.0
2 cat 2.0
3 steak 2.5
4 dog 1.0
5 mouse 4.0
6 cat 1.0
现在我想计算我有多少对象(dog
、cat
等)。通常我只会使用 table
函数。
> table(data$name)
cat dog mouse steak
2 2 1 1
但是正如您想象的那样,我不只是想计算数据框中有多少条目。我想在 amount
列中计数。我想要这样的输出
> custom_table(data)
cat dog mouse steak
3.0 2.0 4.0 2.5
有没有简单的方法来获得这种 table
功能?
也许使用 dyplr
:
library(dyplr)
data %>% group_by(name) %>% tally(amount)
输出:
# A tibble: 4 x 2
name n
<fct> <dbl>
1 cat 3
2 dog 2
3 mouse 4
4 steak 2.5
table
给出频率计数,我们需要得到 'name'
分组的 sum
aggregate(amount ~ name, data, sum)
# name amount
#1 cat 3.0
#2 dog 2.0
#3 mouse 4.0
#4 steak 2.5
或者如果我们需要一个命名的 vector
with(data, tapply(amount, name, FUN = sum))
# cat dog mouse steak
# 3.0 2.0 4.0 2.5
或 count
来自 dplyr
library(dplyr)
data %>%
count(name, wt = amount)
我正在使用 R 和这样的数据
data <- data.frame(name=c("dog", "cat", "steak", "dog", "mouse", "cat"), amount=c(1, 2, 2.5, 1, 4, 1))
因此我的数据看起来像这样
> data name amount 1 dog 1.0 2 cat 2.0 3 steak 2.5 4 dog 1.0 5 mouse 4.0 6 cat 1.0
现在我想计算我有多少对象(dog
、cat
等)。通常我只会使用 table
函数。
> table(data$name)
cat dog mouse steak
2 2 1 1
但是正如您想象的那样,我不只是想计算数据框中有多少条目。我想在 amount
列中计数。我想要这样的输出
> custom_table(data)
cat dog mouse steak
3.0 2.0 4.0 2.5
有没有简单的方法来获得这种 table
功能?
也许使用 dyplr
:
library(dyplr)
data %>% group_by(name) %>% tally(amount)
输出:
# A tibble: 4 x 2
name n
<fct> <dbl>
1 cat 3
2 dog 2
3 mouse 4
4 steak 2.5
table
给出频率计数,我们需要得到 'name'
sum
aggregate(amount ~ name, data, sum)
# name amount
#1 cat 3.0
#2 dog 2.0
#3 mouse 4.0
#4 steak 2.5
或者如果我们需要一个命名的 vector
with(data, tapply(amount, name, FUN = sum))
# cat dog mouse steak
# 3.0 2.0 4.0 2.5
或 count
来自 dplyr
library(dplyr)
data %>%
count(name, wt = amount)