簡體   English   中英

遍歷數據集的每一行和每一列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM