[英]Concatenating two columns together in R with NAs
我想創建一個列(結果),它將是另外兩個列的串聯。
col1 col2 Outcome
A NA A
A B AB
NA NA NA
NA B B
A B AB
我試過了:
df$Outcome = c(df$col1, df$col2)
但它不起作用。 最簡單的方法是什么?
我們可以unite
library(dplyr)
library(tidyr)
df %>%
unite(Outcome, col1, col2, sep="", na.rm = TRUE, remove = FALSE) %>%
select(names(df), Outcome) %>%
mutate(Outcome = na_if(Outcome, ""))
-輸出
# col1 col2 Outcome
#1 A <NA> A
#2 A B AB
#3 <NA> <NA> <NA>
#4 <NA> B B
#5 A B AB
或在單行中的base R
apply(df, 1, function(x) paste(na.omit(x), collapse=""))
或者可以通過刪除NA
以一種駭人聽聞的方式完成(但它可能會失敗)
na_if(gsub("NA", "", do.call(paste0, df)), "")
c
用於連接。 如果我們對兩個vector
s 執行c
,則第二個vector
在第一個向量的末尾連接起來,它的length
等於兩個向量的長度之和
df <- structure(list(col1 = c("A", "A", NA, NA, "A"), col2 = c(NA,
"B", NA, "B", "B")), row.names = c(NA, -5L), class = "data.frame")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.