gpt4 book ai didi

r - 在 R 中数据框的每一列之间插入一个空列

转载 作者:行者123 更新时间:2023-12-03 19:55:56 25 4
gpt4 key购买 nike

假设您有一个四列的数据框:

dat <- data.frame(A = rnorm(5), B = rnorm(5), C = rnorm(5), D = rnorm(5))

并且您想在数据框中的每一列之间插入一个空列,以便输出:
           A A1           B B1          C C1           D D1
1 1.15660588 NA 0.78350197 NA -0.2098506 NA 2.07495662 NA
2 0.60107853 NA 0.03517539 NA -0.4119263 NA -0.08155673 NA
3 0.99680981 NA -0.83796981 NA 1.2742644 NA 0.67469277 NA
4 0.09940946 NA -0.89804952 NA 0.3419173 NA -0.95347049 NA
5 0.28270734 NA -0.57175554 NA -0.4889045 NA -0.11473839 NA

你会怎么做?

我想做这个操作的数据框有数百列,所以显然我不想输入每一列并像这样天真地添加它们:
dat$A1 <- NA
dat$B1 <- NA
dat$C1 <- NA
dat$D1 <- NA

dat <- dat[, c("A", "A1", "B", "B1", "C", "C1", "D", "D1")]

感谢您提前提供帮助!

最佳答案

你可以试试

 res <- data.frame(dat, dat*NA)[order(rep(names(dat),2))]
res
# A A.1 B B.1 C C.1 D D.1
#1 1.15660588 NA 0.78350197 NA -0.2098506 NA 2.07495662 NA
#2 0.60107853 NA 0.03517539 NA -0.4119263 NA -0.08155673 NA
#3 0.99680981 NA -0.83796981 NA 1.2742644 NA 0.67469277 NA
#4 0.09940946 NA -0.89804952 NA 0.3419173 NA -0.95347049 NA
#5 0.28270734 NA -0.57175554 NA -0.4889045 NA -0.11473839 NA

注意:我要离开 .在列名称中,因为删除它是一项微不足道的任务。

或者另一种选择是
dat[paste0(names(dat),1)] <- NA
dat[order(names(dat))]

关于r - 在 R 中数据框的每一列之间插入一个空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31316328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com