用于根据id列

时间:2019-03-30 12:54:24

标签: r

追加是我在R中数据集的一部分。

id time residuals
1   2   -2.0
1   3   2.1
2   2   -1.3
2   3   2
3   2   -1.4
3   3   1.5

我想像这样基于id转换数据集

id  time1 time2
1   -2.0   2.1
2   -1.3    2
3    -1.4   1.5

R中是否有任何可用的函数,或者我应该编码以转换数据?!

1 个答案:

答案 0 :(得分:1)

spread设置“时间”列之后,我们可以使用mutate

library(tidyverse)
df1 %>%
    mutate(time = str_c("time", time -1)) %>%
    spread(time, residuals)
#     id time1 time2
#1  1  -2.0   2.1
#2  2  -1.3   2.0
#3  3  -1.4   1.5
数据
df1 <- structure(list(id = c(1L, 1L, 2L, 2L, 3L, 3L), time = c(2L, 3L, 
 2L, 3L, 2L, 3L), residuals = c(-2, 2.1, -1.3, 2, -1.4, 1.5)), 
 class = "data.frame", row.names = c(NA, 
  -6L))