gpt4 book ai didi

r - 在 R 中拆分数据框时删除列

转载 作者:行者123 更新时间:2023-12-01 22:26:46 24 4
gpt4 key购买 nike

我正在尝试按列拆分数据表,但是一旦我获得数据表列表,它们仍然包含数据表被拆分的列。拆分完成后我将如何删除此列。或者更可取的是,有没有办法删除多列。

这是我的代码:

x <- rnorm(10, mean = 5, sd = 2)
y <- rnorm(10, mean = 5, sd = 2)
z <- sample(5, 10, replace = TRUE)
dt <- data.table(x, y, z)

split(dt, dt$z)

生成的数据表子集看起来像这样

$`1`
x y z
1: 6.179790 5.776683 1
2: 5.725441 4.896294 1
3: 8.690388 5.394973 1

$`2`
x y z
1: 5.768285 3.951733 2
2: 4.572454 5.487236 2

$`3`
x y z
1: 5.183101 8.328322 3
2: 2.830511 3.526044 3

$`4`
x y z
1: 5.043010 5.566391 4
2: 5.744546 2.780889 4

$`5`
x y z
1: 6.771102 0.09301977 5

谢谢

最佳答案

拆分 data.table 确实不值得,除非您有一些花哨的并行化步骤可以遵循。即便如此,您最好还是坚持使用一张 table 。

也就是说,我想你想要

split( dt[, !"z"], dt$z )

# or more generally

mysplitDT <- function(x, bycols)
split( x[, !..bycols], x[, ..bycols] )

mysplitDT(dt, "z")

如果你有一个 data.frame,你会遇到同样的问题:

df = data.frame(dt)
split( df[-which(names(df)=="z")], df$z )

关于r - 在 R 中拆分数据框时删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33246113/

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