gpt4 book ai didi

r - 是否可以像 dcast 一样在 tidyr 中的多列上使用扩展?

转载 作者:行者123 更新时间:2023-12-03 05:37:40 24 4
gpt4 key购买 nike

我有以下虚拟数据:

library(dplyr)
library(tidyr)
library(reshape2)
dt <- expand.grid(Year = 1990:2014, Product=LETTERS[1:8], Country = paste0(LETTERS, "I")) %>% select(Product, Country, Year)
dt$value <- rnorm(nrow(dt))

我选择两种产品-国家/地区组合

sdt <- dt %>% filter((Product == "A" & Country == "AI") | (Product == "B" & Country =="EI"))

我想并排查看每个组合的值。我可以用 dcast 来做到这一点:

sdt %>% dcast(Year ~ Product + Country)

是否可以使用spread来做到这一点来自tidyr包?

最佳答案

一种选择是通过粘贴连接“产品”和“国家/地区”列来创建新的“Prod_Count”,使用选择删除这些列并重新调整形状使用 tidyr 中的 spread 从“长”到“宽”。

 library(dplyr)
library(tidyr)
sdt %>%
mutate(Prod_Count=paste(Product, Country, sep="_")) %>%
select(-Product, -Country)%>%
spread(Prod_Count, value)%>%
head(2)
# Year A_AI B_EI
#1 1990 0.7878674 0.2486044
#2 1991 0.2343285 -1.1694878

或者我们可以通过使用 tidyr 中的 unite (来自 @beetroot 的评论)来避免几个步骤,并像以前一样进行 reshape 。

 sdt%>% 
unite(Prod_Count, Product,Country) %>%
spread(Prod_Count, value)%>%
head(2)
# Year A_AI B_EI
# 1 1990 0.7878674 0.2486044
# 2 1991 0.2343285 -1.1694878

关于r - 是否可以像 dcast 一样在 tidyr 中的多列上使用扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24929954/

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