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