gpt4 book ai didi

r - 在 R dplyr 中按计数展开列

转载 作者:行者123 更新时间:2023-12-04 16:38:45 24 4
gpt4 key购买 nike

我有一个因子列。我想将每个因素分成一列,然后通过为每个 id 出现的该因素的计数来填补空白。假设我们有:

car <- c("a","b","b","b","c","c","a","b","b","b","c","c")
type <- c("good", "regular", "bad","good", "regular", "bad","good", "regular", "bad","good", "regular", "bad")
car_type <- data.frame(car,type)

并得到:
   car    type
1 a good
2 b regular
3 b bad
4 b good
5 c regular
6 c bad
7 a good
8 b regular
9 b bad
10 b good
11 c regular
12 c bad

我要这个:
> results
car good regular bad
1 a 2 0 0
2 b 2 2 2
3 c 0 2 2

我使用 dplyr 尝试此操作,但我并不真正习惯它,因此它不起作用。
car_type %>%
select(car, type) %>%
group_by(car) %>%
mutate(seq = unique(type)) %>%
spread(seq, type)

我会感谢任何帮助。

最佳答案

更新 tidyr::pivot_wider :

library(tidyverse)

car_type %>%
count(car, type) %>%
pivot_wider(names_from=type, values_from=n, values_fill=0)
原答案
reshape2 :
library(reshape2)

dcast(car_type, car ~ type)
如果您打算使用 dplyr ,代码将是:
dplyrreshape2
car_type %>% count(car, type) %>%
dcast(car ~ type, fill=0)
dplyrtidyr
car_type %>% count(car, type) %>%
spread(type, n, fill=0)
在每种情况下, count(car, type)相当于
group_by(car, type) %>% tally
或者
group_by(car, type) %>% summarise(n=n())
data.table
library(data.table)

dcast(setDT(car_type), car ~ type, fill=0)

关于r - 在 R dplyr 中按计数展开列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40454138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com