0

假设我有两个列表:

  a = list(1,2)
  b = list("x","y")
        #a
        #[[1]]
        #[1] 1

        #[[2]]
        #[1] 2

        #b
        #[[1]]
        #[1] "x"

        #[[2]]
        #[1] "y"

我想要以下结果:

        #[[1]]
        #[1] "1x"

        #[[2]]
        #[1] "2y"

我尝试了以下方法:

  lapply(a, paste, b)

但结果不是我所期望的:

        #[[1]]
        #[1] "1 x" "1 y"

        #[[2]]
        #[1] "2 x" "2 y"

我想知道是否有任何方法可以获得所需的结果 - 无需借助任何添加的包或循环。

先感谢您!!!

4

2 回答 2

3

这里有一个建议:

as.list(paste(a,b, sep=""))
[[1]]
[1] "1x"

[[2]]
[1] "2y"
于 2012-05-15T05:59:11.627 回答
0

jigr 的回答是正确的,但我想解决您尝试的解决方案。你在 1 码线,跑进去触地得分。您没有为 lapply 提供分隔符,因此 paste 使用默认值" "。提供该分隔符 ( sep="") 或更好地使用paste0(适用于 R 版本 <= 2.15),默认为""分隔符。

a = list(1,2)
b = list("x","y")

lapply(a, paste, b, sep="")
lapply(a, paste0, b)
于 2012-05-15T14:00:22.900 回答