[英]In R separate values in one column into two columns
我有一个包含以下数据的三列数据集df1 :
ID Age Games
1 36 10
2 36 15
3 36 20
4 36 30
1 37 40
2 37 50
3 37 35
4 37 45
这是 df1 数据集的 dput:
structure(list(ID = c(1, 2, 3, 4, 1, 2, 3, 4), Age = c(36, 36,
36, 36, 37, 37, 37, 37), Games = c(10, 15, 20, 30, 40, 50, 35,
45)), class = "data.frame", row.names = c(NA, -8L))
我希望数据以下表所示的方式显示,其中每个 ID 的年龄 36 和年龄 37 值的游戏现在位于单独的列中:
ID Age36 Age37
1 10 0
2 15 0
3 20 0
4 30 0
1 0 40
2 0 50
3 0 35
4 0 45
我的目标是从第二个表中创建一个带有两个折线图的折线图,一个用于每个 ID 的 Age36 游戏,另一个用于 Age 37 游戏,使用 pivot_longer 准备输入到 ggplot2 的数据(除非您可以推荐一个更好的方法)。
只需按照此代码
library(tidyverse)
df %>% mutate(row = row_number()) %>%
pivot_wider(id_cols = c(row, ID), names_from = Age, values_from = Games, values_fill = 0L) %>%
select(-row)
# A tibble: 8 x 3
ID `36` `37`
<dbl> <dbl> <dbl>
1 1 10 0
2 2 15 0
3 3 20 0
4 4 30 0
5 1 0 40
6 2 0 50
7 3 0 35
8 4 0 45
说明:由于您的 ID 列不是唯一的,我们必须使用row_number()
创建一个虚拟 ID 列,最后我们可以取消选择它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.