在一行代码中创建多列,其中每一列都是通过合并不同的列创建的

Creating multiple columns in one line of code where each column is created by coalescing different columns

如何在一行代码中创建多个列?例如下图中,我试图将下面六行代码变成一行代码?

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 创建

您可以像这样创建数据框。如果您需要追加(而不是创建),一个选项是将新创建的数据框与之后的旧数据框合并。
如果真的是ONE LINE(不是一个语句)你要找的,你可以省略这里插入的换行符,增加可读性。

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

这是您要找的吗?我不确定你需要实现什么。

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

{statement 1
statement 2
statement 3...
}

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