【发布时间】:2016-02-04 21:22:50
【问题描述】:
这是我的数据框
s <- data.frame(
x = c("a","b","c"),
y = c("d","e", NA),
z = c(NA,"j",NA)
)
我想连接(粘贴)基于条件的值,我想用逗号粘贴非空值,所以我想要的向量是:
a,b,c
d,e
j
也许这很简单,但我不知道该怎么做。
【问题讨论】:
标签: r string concatenation
这是我的数据框
s <- data.frame(
x = c("a","b","c"),
y = c("d","e", NA),
z = c(NA,"j",NA)
)
我想连接(粘贴)基于条件的值,我想用逗号粘贴非空值,所以我想要的向量是:
a,b,c
d,e
j
也许这很简单,但我不知道该怎么做。
【问题讨论】:
标签: r string concatenation
由于它与 GIS 或空间分析无关,因此此问题应同时迁移到 Stack Overflow。
s <- data.frame(
x = c("a","b","c"),
y = c("d","e", NA),
z = c(NA,"j",NA)
)
将逗号作为单个向量或按列添加:
paste(sapply(strsplit(as.vector(na.omit(c(s[,1], s[,2], s[,3]))), ""),
paste, collapse=":"), collapse=", ")
sapply(as.list(s), function(x) {paste(na.omit(x), collapse=", ")})
【讨论】:
另一种选择是
library(dplyr)
s %>%
summarise_each(funs(toString(na.omit(.)))) %>%
unlist(., use.names=FALSE)
#[1] "a, b, c" "d, e" "j"
【讨论】: