簡體   English   中英

如何合並R中的多列

[英]How to combine multiple columns in R

假設我有這個數據集:

     age      height       weight
   "1/2/3"  "12/15/18"   "30/40/37"

我怎樣才能擁有像下面的數據集這樣的數據集?

   age height weight
    1    12     30
    2    15     40
    3    18     37

如果我的數據集是這樣的怎么辦:

  name     age      height       weight
 "Jack"  "1/2/3"  "12/15/18"   "30/40/37"

我想要一個如下的數據集:

    name  age height weight
   "Jack"  1    12     30
   "Jack"  2    15     40
   "Jack"  3    18     37

我怎樣才能做到這一點?

如果您不介意使用外部 package,您可以使用tidyr package 中的separate_rows()

library(tidyverse)

df %>% separate_rows(-name, sep = "/")

# A tibble: 3 × 4
  name  age   height weight
  <chr> <chr> <chr>  <chr> 
1 Jack  1     12     30    
2 Jack  2     15     40    
3 Jack  3     18     37    

如果您的數據是這樣的數據幀格式:

df <- data.frame(age = '1/2/3', height = '12/15/18', weight = '30/40/37')

df
#>     age   height   weight
#> 1 1/2/3 12/15/18 30/40/37

你可以做

as.data.frame(lapply(df, function(x) as.numeric(unlist(strsplit(x, '/')))))
#>   age height weight
#> 1   1     12     30
#> 2   2     15     40
#> 3   3     18     37

如果您的數據是命名向量,則相同的代碼也將起作用(從問題中不清楚您的數據采用什么格式,但只要您的數據被稱為df ,上述代碼在任何一種情況下都應該起作用)

reprex package (v2.0.1) 創建於 2022-04-10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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