我创建了一个输出表,其中包括客户层信息和一些更细粒度的数据(计划层信息),因此客户信息可能会在数据中重复。以下是一个简化的示例:
client <- c('smith', 'smith', 'black', 'lucas')
address <- c('100 Main', '100 Main', '123 Elm', '222 Hill')
type <- c('medical', 'dental', 'vision', 'medical')
comp <- c(.1, .15, .12, .12)
sample <- bind_cols(client = client, address = address, type `= type, comp = comp)`
如何使用pivot_wideer()或其他dplyr函数转换数据,使每一行都是客户端,每个计划层字段显示为新列。输出如下:
client <- c('smith', 'black', 'lucas')
address <- c('100 Main', '123 Elm', '222 Hill')
type_1 <- c('medical', 'vision', 'medical')
comp_1 <- c(.1, .12, .12)
type_2 <- c('dental', 'na', 'na')
comp_2 <- c(.15, 'na','na')
sample_final <- bind_cols(client = client, address = address
, type_1 = type_1, comp_1 = comp_1
, type_2 = type_2, comp_2 = comp_2)
1条答案
按热度按时间xdnvmnnf1#
首先在每个客户机中创建行号,然后将行号传递给
pivot_wider()
中的names_from
。还要注意,使用names_vary = "slowest"
可以按所需顺序获得列。