所以我有下表:
Name, id, year, sumofloss
a, 11, 2001, 1
a, 11, 2002, 2
a, 11, 2003, 3
a, 11, 2004, 4
b, 12, 2001, 5
b, 12, 2002, 6
b, 12, 2003, 7
b, 12, 2004, 8
因此,假设我有两个帐户,分别称为a和b,并且每个帐户分别具有2001、2002、2003、2004年的亏损编号。现在,我想操纵该表并获得一个如下表: >
Name, id, 2001, 2002, 2003, 2004
a, 11, 1, 2, 3, 4
b, 12, 5, 6, 7, 8
因此,新表将把每个年份的值作为新列,并且每个列的值都是前一个sumofloss列,就像提取年份值作为新列一样。
我尝试了group_by,但是发现仅通过一个函数很难将year的值提取为列,但是我应该使用逐行的year值手动设置新列吗?如果我有10年或更长时间,那将是非常困难的。有没有一种方法可以使表转换更容易?
答案 0 :(得分:0)
假设df
为数据框,则可以执行以下操作:
library(tidyverse)
df %>%
spread("year", "sumofloss")