r - R:使用 dcast 或 pivot_wider 进行整形的问题
问题描述
我在重塑以下数据框时遇到问题:
set.seed(45)
dat1 <- data.frame(
name = rep(c("firstID", "secondID"), each=4),
numbers = rep(1:4, 2),
value = rnorm(8),
Category = rep(c("111", "22"), each=4)
)
dat1
ID Timestamp value Category
1 firstID 1 0.3407997 111
2 firstID 2 -0.7033403 111
3 firstID 3 -0.3795377 111
4 firstID 4 -0.7460474 111
5 secondID 1 -0.8981073 22
6 secondID 2 -0.3347941 22
7 secondID 3 -0.5013782 22
8 secondID 4 -0.1745357 22
我似乎无法弄清楚如何获得以下结果:
firstID secondID
111 22
0.3407997 -0.8981073
-0.7033403 -0.3347941
-0.3795377 -0.5013782
-0.7460474 -0.1745357
解决方案
以下不应该是宽格式的最终输出吗?
library(tidyverse)
dat1 %>%
pivot_wider(
id_cols = numbers,
names_from = c(name, Category),
values_from = value
) %>%
select(-numbers)
## A tibble: 4 x 2
# firstID_111 secondID_22
# <dbl> <dbl>
#1 0.341 -0.898
#2 -0.703 -0.335
#3 -0.380 -0.501
#4 -0.746 -0.175
推荐阅读
- c++ - 与 MakeFile 等效的 cmake
- javascript - 如何在 React 和 JSX 中导入名称中包含特殊字符的 JS 文件?
- ios - SwiftUI:如何在后台应用程序时添加带有应用程序徽标的模糊视图?
- graph-algorithm - 拓扑排序基本类比
- go - 如何将 GoLang 二进制文件部署到 CF
- kubernetes - 使用 Cronjob Kubernetes 集群执行脚本
- android - 无法使用导航和喷气背包组合弹出起始目的地
- amazon-web-services - 推送更新的 docker 版本时,AWS ECR 层已经存在
- c++ - wait() 用于通过克隆创建的线程?
- docker - 在 Hortonworks HDP MAC M1 芯片中打开 Ambari 页面时出现 502 Bad Gateway