r "slot"两列合二为一(如 zipper )

标签 r merge

给定两列(可能来自数据帧)等长 N,我如何生成长度为 2N 的列,其中包含第一列中的奇数项和第二列的偶数项?

假设我有以下数据框

df.1 <- data.frame(X = LETTERS[1:10], Y = 2*(1:10)-1, Z = 2*(1:10))

我怎样才能产生这个数据框df.2

i <- 1
j <- 0
XX <- NA
while (i <= 10){
XX[i+j] <- LETTERS[i]
XX[i+j+1]<- LETTERS[i]
i <- i+1
j <- i-1
}

df.2 <- data.frame(X.X = XX, Y.Z = c(1:20))

最佳答案

ggplot2 有一个未导出的函数 interleave 执行此操作。

虽然未导出它确实有一个帮助页面(?ggplot2:::interleave)

with(df.1, ggplot2:::interleave(Y,Z))
## [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

关于r "slot"两列合二为一(如 zipper ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159377/

相关文章:

mysql - 处理 View 的 MySQL 临时表算法

git - 我如何在 Mercurial 上执行 git reset --hard HEAD?

r - qplot 堆栈条形图

git - (Git Merging) 何时使用 'ours' 策略、 'ours' 选项和 'theirs' 选项?

r - 如何将值从一个数据帧传输到另一个数据帧?

通过在 .csv 和数据库中写入 R 意外舍入

python - 合并列表列表

r - 将空白单元格更改为 "NA"

使用plotly包中的add_pie函数时收到 'object not found'错误

css - 有什么方法可以在不丢失颜色的情况下打印 rmarkdown 表吗?