![](/img/trans.png)
[英]How to rename columns with row character values using tidyverse pipeline?
[英]replace some character values using tidyverse
我有一個數據框,其中有一列如下所示,我想使用tidyr::separate
將其拆分為 3 列。 問題是某些行中的第一段由兩部分組成(前 Troms-Romsa)
dummy data:
df <- data.frame(
stringsAsFactors = FALSE,
fka = c(
"Troms-Romsa - Female - 65+",
"Aust-Agder - Female - 20-29",
"Aust-Agder - Man - 50-64",
"Troms-Romsa - Man - 65+",
"Bergen - Man - 65+",
"Bergen - Female - 65+",
"Aust-Agder - Female - 30-39"))
這里的頭:
fka
1 Troms-Romsa - Female - 65+
2 Aust-Agder - Female - 20-29
3 Aust-Agder - Man - 50-64
4 Troms-Romsa - Man - 65+
5 Bergen - Man - 65+
6 Bergen - Female - 65+
7 Aust-Agder - Female - 30-39
我嘗試用dplyr::across
替換/重命名那些,如下所示,但我做不到。
df %>%
mutate(across(.fns = ~replace(., . == "Aust-Agder" , "AustAgder")))
如何解決這個問題? 我的目標是在最后將 fka col 轉換為 3 個 cols:
... %>%
separate(fka, c('county_name' , 'gender' , 'age_group'), sep="-" , extra = "merge")
嘗試反轉 data.frame 中行的元素,以便有問題的元素是行中的最后一個,如下所示:
df <- data.frame(
stringsAsFactors = FALSE,
fka = c(
"Troms-Romsa - Female - 65+",
"Aust-Agder - Female - 20-29",
"Aust-Agder - Man - 50-64",
"Troms-Romsa - Man - 65+",
"Bergen - Man - 65+",
"Bergen - Female - 65+",
"Aust-Agder - Female - 30-39",
"Finnmark - Finnmárku - Female - 50-64"))
df$fka = (sapply(strsplit(x = df$fka, split = " - "), function(x) paste(rev(x), collapse = "_")))
df %>% separate(fka, c('age_group', 'gender', 'county_name'), sep="_" , extra = "merge")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.