【问题标题】:How do I paste string columns in data.frame [duplicate]如何在 data.frame 中粘贴字符串列 [重复]
【发布时间】:2017-04-05 23:43:22
【问题描述】:

假设我们有:

mydf <- data.frame(a= LETTERS, b = LETTERS, c =LETTERS)

现在我们要添加一个新列,其中包含所有列的串联。 这样新列中的行读取“AAA”、“BBB”、...

在我看来,以下应该有效吗?

mydf[,"Concat"] <- apply(mydf, 1, paste0)

【问题讨论】:

  • 使用apply 逻辑。 mydf["concat"] &lt;- apply(mydf, 1, paste0, collapse = "")

标签: r dataframe


【解决方案1】:

除了@akrun 的回答之外,这里还有一个简短的解释,说明您的代码为什么不起作用。
您在代码中传递给 paste0 的是向量,这里是 pastepaste0 与向量的行为:

> paste0(c("A","A","A"))
[1] "A" "A" "A"

确实,要连接一个向量,你需要使用参数collapse

> paste0(c("A","A","A"), collapse="")
[1] "AAA"

因此,您的代码应该是:

> apply(mydf, 1, paste0, collapse="")
 [1] "AAA" "BBB" "CCC" "DDD" "EEE" "FFF" "GGG" "HHH" "III" "JJJ" "KKK" "LLL" "MMM" "NNN" "OOO" "PPP" "QQQ" "RRR" "SSS" "TTT" "UUU" "VVV"
[23] "WWW" "XXX" "YYY" "ZZZ"

【讨论】:

    【解决方案2】:

    我们可以使用do.callpaste0 来加快执行速度

    mydf[, "Concat"] <- do.call(paste0, mydf)
    

    【讨论】:

      猜你喜欢
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 2013-02-05
      • 1970-01-01
      • 2014-12-26
      • 2017-06-26
      • 1970-01-01
      相关资源
      最近更新 更多