53
我有以下的伪数据:是否可以在tidyr中的多列上使用传播类似dcast?
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)
是否有可能从包装tidyr与spread
做到这一点?
是的,这是我首先想到的。但它不漂亮:) – mpiktas
@mpiktas。我只能想到这种方法。可能是别人会拿出紧凑的代码:) - – akrun
那么有'unite()',但它似乎只适用于数字数据(虽然目的虽然?)。 – beetroot