我有一个数据框dd2
,其中有数百列,我需要做的是将所有这些列的值粘贴在一起,省略任何NA
值。如果我像下面这样做:
apply(dd2, 1, paste, collapse=",")
实际上,它将NA
作为字符串"NA"
来处理。我希望避免这种情况。我也可以像下面展示的那样做,但这需要我逐个列地工作才能得到结果。
result <- cbind(
dd2,
combination = paste(dd2[,2], replace(dd2[,3], is.na(dd2[,3]), ""), sep = ",")
)
有没有更高效的方法来做这件事呢?这是一个样例数据:
dd2 <- structure(c("A", "B", "C", "D", "E", "AK2", "HFM1", NA, "TRR",
"RTT", NA, "PPT", "TRR", "RTT", NA, "PPT", NA, NA, "GGT", NA), .Dim = c(5L,
4L), .Dimnames = list(NULL, c("sample_id", "plant", "animal",
"more")))
data.frame
。使用“dd2”,您只是想将除第一列以外的所有列粘在一起吗? - A5C1D2H2I1M1N2O1R2T1dd2[,wanted.columns]
。 - MAPKmelt(as.data.table(dd2), measure.vars = c("plant", "animal"), na.rm = TRUE)[, toString(value), by = .(sample_id, more)]
。 - A5C1D2H2I1M1N2O1R2T1