【发布时间】:2020-12-29 08:15:27
【问题描述】:
我正在努力使用 R 中的 pivot_longer 将宽数据集转换为长数据集。对于下面的示例,我将每个物种的捕获数据作为一列。我想输出一个数据框,其中 FIRST 列是 Species,每一行都是一个数据点,Year 和 Country 也作为列。我想稍后对这些进行分组和平均,以便我可以绘制它们。有谁知道如何使用 pivot_longer 实现这一目标?
Data <- data.frame(
Country = c("a", "a", "c", "c", "a", "b"),
Year = c("1990", "1990", "1991", "1992", "1990", "1990"),
Tiger_Shark = c(0,1,4,7,5,6) ,
Whale_shark = c(0, 20, 14, 19, 2,7),
White_shark = c(0, 0, 12, 29, 1,8))
我尝试了以下方法:
data %>%
pivot_longer( cols= Tiger_Shark:White_shark,
names_to = c(" Tiger", "Whale", "White"),
values_to = "catch")
但这不会保留我想保留的 Year 或 Country 列。我认为解决方案很简单,但我不熟悉pivot_longer。非常感谢!!
【问题讨论】:
-
你需要
Data %>% pivot_longer(cols = Tiger_Shark:White_shark) %>% group_by(Country, Year) %>% summarise(value = mean(value))