簡體   English   中英

合並具有相似列名/相似列字符串的列 - Reprex

[英]Combine Columns with Similar Column Names / Similar Column Strings - Reprex

目標:僅根據列名的相似性合並多個列。

問題:我正在處理一個大型數據集,其中列名被復制,看起來像這樣:wk1.1、wk1.2、wk1.3。 對於每一行,相似的列名中只有一個值,其他為 NA。 Coalesce 非常有用,但是當我必須列出每個列名時變得乏味(搞亂自動化)。 有沒有辦法根據一串字符進行合並? 例如下面,我希望合並 %in% "wk1"。

library(dplyr)
wk1.1 <- c(15, 4, 1)
wk1.2 <- c(3, 20, 4)
wk1.3 <- c(1, 2, 17)

df <- data.frame(wk1.1, wk1.2, wk1.3)
df[df < 14] <- NA
df1 <- df %>%
  mutate(wk1 = coalesce(df$wk1.1, df$wk1.2, df$wk1.3))

我們可以使用拼接它!!!

library(dplyr)
df %>%
      mutate(wk1 = coalesce(!!! .))
#  wk1.1 wk1.2 wk1.3 wk1
#1    15    NA    NA  15
#2    NA    20    NA  20
#3    NA    NA    17  17

或者另一種選擇是reduce並應用coalesce

library(purrr)
df %>%
   mutate(wk1 = reduce(., coalesce))

暫無
暫無

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

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