[英]Iterate through each row and column of a dataset
我是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
我需要對沒有相同列數的幾個數據集執行此操作,但是結果數據集應具有相同的格式。
誰能幫我?
嘗試tidyr::gather()
。 對於您的示例,假設數據框為mydata
:
library(tidyr)
mydata %>%
gather(question, answer, -ID)
使用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軟件包 (v0.2.0)於2018-03-21創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.