【问题标题】:Creating multiple columns in one line of code where each column is created by coalescing different columns在一行代码中创建多列,其中每一列是通过合并不同的列来创建的
【发布时间】:2021-06-22 17:10:06
【问题描述】:

如何在一行代码中创建多个列?比如下图中,我想把下面六行代码变成一行代码?

A1AFirstBatch4$OOATB1 <- with(A1AFirstBatch4, coalesce(Q1a, Q1b)) 
A1AFirstBatch4$OOATB2 <- with(A1AFirstBatch4, coalesce(Q2a, Q2b)) 
A1AFirstBatch4$OOATB3 <- with(A1AFirstBatch4, coalesce(Q3a, Q3b)) 
A1AFirstBatch4$OOATB4 <- with(A1AFirstBatch4, coalesce(Q4a, Q4b)) 
A1AFirstBatch4$OOATB5 <- with(A1AFirstBatch4, coalesce(Q5a, Q5b)) 
A1AFirstBatch4$OOATB6 <- with(A1AFirstBatch4, coalesce(Q6a, Q6b)) 

reprex package (v2.0.0) 于 2021-04-07 创建

【问题讨论】:

  • 可能希望提供文本格式的代码,而不是不能复制粘贴到某人的 R 编辑器中以重现问题的图像。
  • @JasonAizkalns,好的....谢谢您的反馈。我将使用可重现的示例编辑此问题并再次发布。
  • @Martin 好的....谢谢您的反馈。我将使用可重现的示例编辑此问题并再次发布

标签: r multiple-columns coalesce


【解决方案1】:

您可以像这样创建数据框。如果您需要追加(而不是创建),一个选项是之后将新创建的数据框与旧数据框合并。
如果您要查找的确实是 ONE LINE(不是一条语句),则可以省略此处插入的换行符以增加阅读能力。

A1AFirstBatch4 <- data.frame(OOATB1 = coalesce(Q1a, Q1b),
                             OOATB2 = coalesce(Q2a, Q2b),
                             ... and so forth ... )

这就是你要找的吗?我不确定你需要达到什么目标。

如果是函数、if 语句等的一段代码:使用大括号:

{statement 1
statement 2
statement 3...
}

(从字面上理解您的问题,可以简单地将分号放在一行中的语句之间,但这是不可读的,我不确定每行的最大字符 A... &lt;- ....; A... &lt;- ....; ...)。

【讨论】:

  • 好的..非常感谢您。您创建新数据框并加入主数据的建议非常有用,因为我想单独对构造执行操作。这将允许我这样做,然后稍后将不同的数据框连接在一起。
  • @MylifeisinHishandsAmen 要确认一个答案是有用的或被接受的答案,这就是答案旁边左上角的符号(箭头、复选标记)的用途;-)
猜你喜欢
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 2020-06-09
  • 2022-11-04
  • 2013-09-06
  • 2015-06-25
相关资源
最近更新 更多