【发布时间】:2016-10-02 00:10:12
【问题描述】:
我有字符向量,其中一些元素有 0 个字符。我想连接它们,但忽略这 0 个元素:
x <- c("a", "b", "", "d", "", "f")
y <- c("a", "", "c", "", "e", "f")
z <- c("a", "", "c", "d", "", "f")
paste(x, y, z, sep = ":")
# This gives:
# [1] "a:a:a" "b::" ":c:c" "d::d" ":e:" "f:f:f"
# But I want this:
# "a:a:a" "b" "c:c" "d:d" "e" "f:f:f"
编辑:上面是一个简化的例子,这是一个更好的近似值(我将 cmets 连接到单个字段)
x <- c("alpah beta", "better", "", "delta", "")
y <- c("alpha", "", "c", "", "fox, one")
z <- c("alpha", "", "can of worms", "delta", "")
paste(x, y, z, sep = "; ")
# Gives:
# "alpha beta; alpha; alpha" "better; ; " "; c; can of worms" "delta; ; delta" "; fox, one; "
# required
# "alpha beta; alpha; alpha" "better" "c; can of worms" "delta; delta" "fox, one"
我也对一个解决方案感兴趣,该解决方案可以将“”替换为 NA,但结果相同。
【问题讨论】:
-
可以对输出进行后处理以从字符串的开头或结尾删除 :: 或 :。
标签: r string character concatenation paste