r - 我如何拆分和排序这个数据集
问题描述
这是我的数据的一个小样本量:
var colour no Mcolour Ncolour
sa1_fr_19 B 10 66 3
sa1_fr_19 W 12 85 6
su3_sa2_18 B 8 70 9
su3_sa2_18 W 6 24 1
我想得到这张桌子:
year var sort nB McolourB NcolourB nW McolourW NcolourW
19 sa1 fr 10 66 3 12 85 6
18 su3 sa2 8 70 9 6 24 1
如果我们可以使用基本 R 代码来实现就好了
解决方案
拆分列'_'
并使用pivot_wider
.
library(magrittr)
library(tidyr)
df %>%
separate(var, c('var', 'sort', 'year'), sep = '_') %>%
pivot_wider(names_from = colour, values_from = c(no, Mcolour, Ncolour), names_sep = '')
# var sort year noB noW McolourB McolourW NcolourB NcolourW
# <chr> <chr> <chr> <int> <int> <int> <int> <int> <int>
#1 sa1 fr 19 10 12 66 85 3 6
#2 su3 sa2 18 8 6 70 24 9 1
数据
df <- structure(list(var = c("sa1_fr_19", "sa1_fr_19", "su3_sa2_18",
"su3_sa2_18"), colour = c("B", "W", "B", "W"), no = c(10L, 12L,
8L, 6L), Mcolour = c(66L, 85L, 70L, 24L), Ncolour = c(3L, 6L,
9L, 1L)), class = "data.frame", row.names = c(NA, -4L))
推荐阅读
- kedro - “Hello_World”教程的数据版本控制
- jenkins - 如何在管道 Windows 中使用 GCloud
- django - 比较 DateField 与 timezone.now().date()
- git - 在两个未合并的功能分支之间重用代码
- python - 无法在 python 3.8.3 上安装 pygame
- fluentd - 是否可以预先和附加到流利的事件?
- functional-programming - 功能语言“在引擎盖下”
- hadoop - 我可以在本地机器上的 python 上运行 spark 命令到 hadoop 吗?
- node.js - MongoDB非对称返回数据,数组中的第一项完整返回,其余部分省略某些属性?
- react-native - 为什么 react-native 应用程序会立即关闭?