需要将垂直数据集转换为具有一对多关系的水平数据集
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)
想创建一个新数据集,其中第 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)