将 url 列合并为 R 中的一列

  • 本文关键字:一列 url 合并 r merge
  • 更新时间 :
  • 英文 :


我有三列Facebook,Twitter和Instagram URL,如下所示:

df <- data.frame(fb_url = c("www.facebook.com/...", "www.facebook.com/...",NA,NA,NA,NA),
tw_url = c(NA, NA, "www.twitter.com/...", "www.twitter.com/...",NA,NA),
ig_url = c(NA, NA, NA, NA, "www.instagram.com/...", "www.instagram.com/..."))
> df
fb_url                    tw_url               ig_url
www.facebook.com/...      NA                   NA
www.facebook.com/...      NA                   NA
NA                        www.twitter.com/...  NA
NA                        www.twitter.com/...  NA
NA                        NA                   www.instagram.com/...
NA                        NA                   www.instagram.com/...

我只想将它们合并到一列中,如下所示:

url
www.facebook.com/...
www.facebook.com/...
www.twitter.com/...
www.twitter.com/...
www.instagram.com/...
www.instagram.com/...

paste0union给了我错误,我认为我把这个想法复杂化了。

这些列都是factor的(默认情况下data.frame调用中stringsAsFactors = TRUE(,因此可以将其转换为类character然后使用coalesce

library(dplyr)
df %>% 
mutate_all(as.character) %>%
transmute(url = coalesce(!!! .))
#            url
#1  www.facebook.com/...
#2  www.facebook.com/...
#3   www.twitter.com/...
#4   www.twitter.com/...
#5 www.instagram.com/...
#6 www.instagram.com/...

您也可以使用基本 R 来执行此操作:

df <- data.frame(fb_url = c("www.facebook.com/...", "www.facebook.com/...",NA,NA,NA,NA),
tw_url = c(NA, NA, "www.twitter.com/...", "www.twitter.com/...",NA,NA),
ig_url = c(NA, NA, NA, NA, "www.instagram.com/...", "www.instagram.com/..."),
stringsAsFactors = FALSE)
data.frame(url = na.omit(unlist(df)),
row.names = NULL)
#>                     url
#> 1  www.facebook.com/...
#> 2  www.facebook.com/...
#> 3   www.twitter.com/...
#> 4   www.twitter.com/...
#> 5 www.instagram.com/...
#> 6 www.instagram.com/...

您可以使用软件包中的unite来执行此操作tidyr

df[] <- lapply(df, as.character) ## convert data frame to character class 
tidyr::unite(df, url, na.rm = T) ## then merge all the columns into url column with removing nas
#   url
#1  www.facebook.com/...
#2  www.facebook.com/...
#3   www.twitter.com/...
#4   www.twitter.com/...
#5 www.instagram.com/...
#6 www.instagram.com/...

相关内容

最新更新