我是R的新手,我需要将几个数据集转换为一个大的mysql表。
我需要的是迭代数据集的每一行,并让每一行将列的标签和行的值以及它的id添加到一个新行中。
示例:让我们说下面的数据集:
ID NAME AGE
1 2589 Joe 31
2 2590 Joseph 15
3 2591 Maria 40
我需要把它变成:
id question answer
1 2589 NAME Joe
2 2589 AGE 31
3 2590 NAME Joseph
4 2590 AGE 15
5 2591 NAME Maria
6 2591 AGE 40
我需要对不具有相同列数的几个数据集执行此操作,但结果数据集应具有相同的格式。
任何人都可以帮助我吗?
答案 0 :(得分:0)
试试tidyr::gather()
。假设数据框为mydata
:
library(tidyr)
mydata %>%
gather(question, answer, -ID)
答案 1 :(得分:0)
使用tidyr::gather
将表格转换为长格式,然后按ID
library(dplyr)
library(tidyr)
txt <- "ID NAME AGE
1 2589 Joe 31
2 2590 Joseph 15
3 2591 Maria 40"
df <- read.table(text = txt, header = TRUE)
df %>%
gather(key = "question", value = "answer", -ID) %>%
arrange(ID)
#> ID question answer
#> 1 2589 NAME Joe
#> 2 2589 AGE 31
#> 3 2590 NAME Joseph
#> 4 2590 AGE 15
#> 5 2591 NAME Maria
#> 6 2591 AGE 40
由reprex package(v0.2.0)创建于2018-03-21。