需要将垂直数据集转换为具有一对多关系的水平数据集

Need to convert a vertical data set to horizontal with a one to many relationship

想创建一个新数据集,其中第 1 列是不同的分类变量,第 2 列到第 X 列是 A 的关联值。这是一对多关系。

在给定一对多关系的情况下,使用 spread 时收到一条错误消息

library(tidyr)
new_data <- spread(original_data, `State name`, `Park Location`)

Col 1 Col 2  Transform to  Col 1 Col 2 Col 3 Col 4 
A       C                    A     C    B     A
A       B                    B     A
A       A
B       A 

Error: Each row of output must be identified by a unique combination of keys.
Keys are shared for 687 rows:

一个选项是通过 'Col1'

创建一个序列列
library(dplyr)
library(tidyr)
original_data %>%
   group_by(Col1) %>%
   mutate(rn = row_number()) %>%
   spread(rn, Col2)