追加是我在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中是否有任何可用的函数,或者我应该编码以转换数据?!
答案 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))