gpt4 book ai didi

r - 将数据帧拆分为更小的 block

转载 作者:行者123 更新时间:2023-12-02 06:57:52 25 4
gpt4 key购买 nike

假设我有以下 data.frame

> df <- data.frame(a=rep(1:3),b=rep(1:3),c=rep(4:6),d=rep(4:6))
> df
a b c d
1 1 1 4 4
2 2 2 5 5
3 3 3 6 6

我希望能够将此 df 分成两个帧 df1df2。我希望 df1 成为 df 的前两列,df2 成为 df 的后两列.有没有办法在代码中执行此操作,这样我就不必手动执行以下操作:

> df1 <- df[,1:2]
> df1
a b
1 1 1
2 2 2
3 3 3
> df2 <- df[,3:4]
> df2
c d
1 4 4
2 5 5
3 6 6

这会很好,因为我正在处理的问题有可变数量的列,我只想能够创建 n = ncol(df)/2 数据框。因此,如果上面的示例中还有 2 列,则 df3 将是 df[,5:6]

谢谢!

最佳答案

假设您的 data.frame 有一对列,这里是一个非常短的代码:

>lapply(seq(1,length(df),2), function(u) df[u:(u+1)])
[[1]]
a b
1 1 1
2 2 2
3 3 3

[[2]]
c d
1 4 4
2 5 5
3 6 6

关于r - 将数据帧拆分为更小的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27580455/

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