在r中将数据从1列分离为2列

在r中将数据从1列分离为2列,r,spread,R,Spread,我有一个足球队的数据集,以及他们2009-2017年的胜负结果。目前,赢家和输家都在同一列中,一列接一列,我想为输家创建一个新列 数据示例如下所示: Football <- data.frame ( Season = rep ("2009", 10), Team = rep (c("ARI", "ARI", "ATL", "ATL", "BAL", "BAL", "BUF", "BUF", "CAR", "CAR")), Value = c(10, 6, 7, 9,

我有一个足球队的数据集,以及他们2009-2017年的胜负结果。目前,赢家和输家都在同一列中,一列接一列,我想为输家创建一个新列

数据示例如下所示:

Football <- data.frame (
    Season = rep ("2009", 10),
    Team = rep (c("ARI", "ARI", "ATL", "ATL", "BAL", "BAL", "BUF", "BUF", "CAR", "CAR")),
    Value = c(10, 6, 7, 9, 7, 9, 6, 10, 8, 8)
)
等等。还有其他几个变量,但每个赛季/球队组合唯一变化的变量是“值”

我尝试了几次spread()和mutate()的迭代,但它们通常会生成比我想要的更多的列(即2009.Wins,2009.loss,2010.Wins,2010.loss)

谢谢你的帮助。我希望这篇文章结果不错,这是我第一次发帖

干杯,杰里米

我们创建了一个“Winloss”专栏,然后
以“wide”格式传播

library(tidyverse)
Football %>%
  mutate(Winloss = rep(c("Win", "Loss"), n()/2)) %>%
  spread(Winloss, Value)
#   Season Team Loss Win
#1   2009  ARI    6  10
#2   2009  ATL    9   7
#3   2009  BAL    9   7
#4   2009  BUF   10   6
#5   2009  CAR    8   8
数据
Football使用
reformate2
package

> Football$WL <- rep(c("Win", "Losses"), nrow(Football)/2)
> 
> library(reshape2)
> dcast(Football, Season + Team ~ WL, value.var="Value")
  Season Team Losses Win
1   2009  ARI      6  10
2   2009  ATL      9   7
3   2009  BAL      9   7
4   2009  BUF     10   6
5   2009  CAR      8   8
足球$WL >图书馆(E2) >dcast(足球,赛季+球队~WL,value.var=“value”) 本赛季球队输赢 2009年1月6日10 2 2009 ATL 9 7 3 2009 BAL 9 7 4 2009 BUF 10 6 5 2009年汽车8 8
所以格式不是很好,但所需输出中的每一个“2009”都应该是新行的开始,赢家和输家来自哪里?您可以使用aggregate()或
Football%%>%groupby(Team)%%>%mutate(Winloss=c(“赢”、“输”))%%>%spread(Winloss,Value)
。如果任何团队有nrows,这将产生警告!=2.akrun和Renu的反应如此之快!
Football <- data.frame (
  Season = rep ("2009", 10),
  Team = rep (c("ARI", "ARI", "ATL", "ATL", "BAL", "BAL", "BUF", "BUF", "CAR", "CAR")),
  Value = c(10, 6, 7, 9, 7, 9, 6, 10, 8, 8)
)
> Football$WL <- rep(c("Win", "Losses"), nrow(Football)/2)
> 
> library(reshape2)
> dcast(Football, Season + Team ~ WL, value.var="Value")
  Season Team Losses Win
1   2009  ARI      6  10
2   2009  ATL      9   7
3   2009  BAL      9   7
4   2009  BUF     10   6
5   2009  CAR      8   8