在R中的字符向量上使用扩展函数

时间:2019-02-15 12:25:50

标签: r dataframe group-by

我试图回答多少个观察具有一定顺序的问题。例如我的数据如下:

CaseNo    Code
1111      RF
1111      AV
1111      RF
2222      AV
2222      TF
3333      AV

我需要输出:

CaseNo    1    2    3
1111      RF   AV   RF
2222      AV   RF   NULL
3333      AV   NULL NULL

所以我可以匹配后面的序列。

我已经对数据进行了排序,因此代码的顺序正确,但是我需要将这些代码合并为一行。

我读到散布函数是一个好方法,但这似乎只适用于值,但是我的代码列是字符。我还尝试使用以下方法来进行group_by和nest函数:

spread_df <- df %>% group_by(CaseNo) %>% nest()

这将它带回CaseNo,Code,但是Code列中的代码在列表中,我似乎无法拆分。

有没有一种方法可以简单地带回我需要的输出?还是我发现序列时忽略的任何其他方法?

谢谢

1 个答案:

答案 0 :(得分:1)

按“ CaseNo”分组后,我们可以创建一个序列,然后使用spread将其转换为“宽”格式

library(tidyverse)
df %>% 
  group_by(CaseNo) %>%
  mutate(rn = row_number()) %>% 
  spread(rn, Code)