R重塑数据框以获得观察的出现总数
R reshape a data frame to get the total number of appearance of an observation
我正在考虑如何像这样重塑数据框:
id type points times
1 A 3 1
2 B 3 2
3 A 3 3
4 B 2 4
5 A 1 5
对此:
points A B
1 5 0
2 0 4
3 4 2
所以,我想把点和类型作为列,统计一个点在所有类型中出现的总次数。
您可以使用 reshape2
中的 dcast
reshape2::dcast(dat[-1], points ~ type, fill = 0, fun.aggregate = sum)
# points A B
#1 1 5 0
#2 2 0 4
#3 3 4 2
或者没有外部包你可以使用xtabs
xtabs(times ~ points + type, data = dat)
# type
#points A B
# 1 5 0
# 2 0 4
# 3 4 2
使用 tidyverse
,您可以:
df %>%
group_by(type, points) %>%
summarise(sum = sum(times)) %>%
spread(type, sum, fill = 0)
points A B
<int> <dbl> <dbl>
1 1 5 0
2 2 0 4
3 3 4 2
我正在考虑如何像这样重塑数据框:
id type points times
1 A 3 1
2 B 3 2
3 A 3 3
4 B 2 4
5 A 1 5
对此:
points A B
1 5 0
2 0 4
3 4 2
所以,我想把点和类型作为列,统计一个点在所有类型中出现的总次数。
您可以使用 reshape2
dcast
reshape2::dcast(dat[-1], points ~ type, fill = 0, fun.aggregate = sum)
# points A B
#1 1 5 0
#2 2 0 4
#3 3 4 2
或者没有外部包你可以使用xtabs
xtabs(times ~ points + type, data = dat)
# type
#points A B
# 1 5 0
# 2 0 4
# 3 4 2
使用 tidyverse
,您可以:
df %>%
group_by(type, points) %>%
summarise(sum = sum(times)) %>%
spread(type, sum, fill = 0)
points A B
<int> <dbl> <dbl>
1 1 5 0
2 2 0 4
3 3 4 2