我有一张这样的桌子:
Type, ID, Name, Time
a, 1, abc, 2017-01-01 00:00:00
b, 1, abc, 2017-01-01 00:01:00
a, 1, abc, 2017-01-01 00:02:00
b, 1, abc, 2017-01-01 00:03:00
我正尝试转换成这样的宽格式:
ID, Name, a, b
1, abc, 2017-01-01 00:00:00, 2017-01-01 00:01:00
1, abc, 2017-01-01 00:02:00, 2017-01-01 00:03:00
我正在使用tidyr的传播功能,但是如何保留ID和名称列?
答案 0 :(得分:2)
在通过“类型”,“ ID”和“名称”列创建序列列之后,我们可以使用Comparator<Number>
spread
library(tidyverse)
df %>%
group_by(Type, ID, Name) %>%
mutate(n = row_number()) %>%
spread(Type, Time) %>%
select(-n)
# A tibble: 2 x 4
# Groups: ID, Name [1]
# ID Name a b
# <chr> <chr> <chr> <chr>
#1 1 abc 2017-01-01 00:00:00 2017-01-01 00:01:00
#2 1 abc 2017-01-01 00:02:00 2017-01-01 00:03:00