总结和传播数据集

时间:2018-04-08 19:05:57

标签: r dplyr

我有以下名为temp的数据集:

> >temp
# A tibble: 9 x 3
     ID PainScore PainScoreOrder
  <int>     <int>          <chr>
1     1         4          First
2     1         2         Middle
3     1         3         Middle
4     1         3           Last
5     2         9          First
6     2         8           Last
7     3         7          First
8     3         4         Middle
9     3         5           Last

我正在尝试创建一个摘要表,其中每个ID只有一行,PainScoreOrder =“First”的PainScore值另外一列,PainScoreOrder =“Last”的PainScore值的附加列。我想忽略PainScoreOrder =“Middle”的值。我想要的应该是这样的:

> temp2
# A tibble: 3 x 3
     ID First  Last
  <dbl> <dbl> <dbl>
1     1     4     3
2     2     9     8
3     3     7     5

我正在尝试在dplyr中执行此操作,但我愿意接受任何其他解决方案。

我不是在寻找代码来做这件事,而是在正确的方向上轻推。我甚至无法弄清楚要搜索什么来试图解决这个问题。

我尝试过使用汇总的各种方法但没有成功。我认为答案是使用spread命令,但是,当我尝试以下代码时:

> temp %>%
   spread(PainScoreOrder, PainScore, -ID)

我收到以下错误代码:

  

错误:行(2,3)的重复标识符

我为提出这样一个模糊的问题而道歉,但我觉得如果我知道的话更具体,我就知道如何解决我的问题。同样,我只需要建议要寻找什么。

感谢我在这里第一个问题对我很温柔。

1 个答案:

答案 0 :(得分:3)

你走了:

df %>%
  filter(PainScoreOrder != "Middle") %>%
  spread(key = PainScoreOrder, value = PainScore)

我假设您在每个组中只有一个FirstLast的观察结果。