r - 如何根据列中的变量转换 R 中的列/行
问题描述
我想根据不同列中的变量来改变我的数据框的外观。数据框如下所示:
Date VH Team
2016-10-25 V NYK
2016-10-25 H CLE
2016-10-25 V GSW
2016-10-25 H CHI
2016-10-26 V UTA
2016-10-26 H POR
我想将 VH 和 Team 列分成 VisitorTeam 和 HomeTeam,所以我的数据框看起来像这样:
Date VisitorTeam HomeTeam
2016-10-25 NYK CLE
2016-10-25 GSW CHI
2016-10-26 UTA POR
此代码在一定程度上有效:
reshape = reshape(transform(nbaodds, time =
as.numeric(factor(VH))),
idvar = "Date", dir = "wide")
由于 ID Var 是日期并且它有两个“2016-10-25”实例,因此它只包含第一个实例,而不包含当天发生的另一个游戏。所以输出只有
Date VisitorTeam HomeTeam
2016-10-25 NYK CLE
2016-10-26 UTA POR
任何人都知道如何修复此代码或有不同的代码可以将数据迁移到新列?
解决方案
既然你说订单是 100% 正确的,这将是一个可能的解决方案
library(dplyr)
library(tidyr)
t %>%
dplyr::mutate(ID = dplyr::row_number()) %>%
dplyr::mutate(ID = ifelse(ID %% 2 == 0, ID - 1, ID)) %>%
tidyr::pivot_wider(names_from = VH, values_from = Team)
我使用行号作为 ID 并从每个偶数中减去 1 - 这样你就有了 tidyr::pivot_wider 可以用来区分主客场球队的匹配标识符
推荐阅读
- android - 浮动操作按钮拒绝锚定到操作栏
- c++ - 无法访问嵌套类。类的无效使用
- python - 如何从气流中的 Python 运算符返回列表并将其用作 dags 中后续任务的参数
- python - 数据采样和算法管道python
- java - 将对话框选定的项目传递给其他活动或适配器
- deployment - 使用 ansible 部署和配置 ec2
- sql - 访问:连续笛卡尔积
- google-cloud-dataflow - 在运行时读取多个文件(数据流模板)
- html - 不明白为什么 Konva 文字不隐藏
- redux - Redux - 提供 Provider 后如何访问商店“dispatch”?