gpt4 book ai didi

r - 按因子级别拆分数据帧并按这些级别命名数据帧

转载 作者:行者123 更新时间:2023-12-04 11:51:00 26 4
gpt4 key购买 nike

我想按因子变量之一的级别拆分现有数据帧,以便拆分数据帧的名称对应于因子的级别。

df <- data.frame(cbind(X = 1:10, Y = rnorm(10)), Z = sample(LETTERS[1:3], 10, replace = TRUE))

df是原始数据帧,我想将其拆分为三个名为 A 的数据帧, BC ,使得:
A = subset(df, Z == 'A')
B = subset(df, Z == 'B')
...

有没有一种简单的方法可以一次性做到这一点?我有一个庞大的数据集,并且因子变量的级别太多。

最佳答案

在基础 R 中,您应该使用函数 split .和 split有一个 default方法和方法之一 data.frame .但是,我发现 split.data.frame随着要拆分的级别数量变得巨大,速度非常慢。那是,

# inefficient in my opinion
split(df, df$Z)

上述解决方案也将直接为您提供您要求的名称,但会在很大程度上窒息。

如果您愿意使用外部包进行交易以提高速度/效率,我建议您使用 data.table包裹:
require(data.table)
dt <- data.table(df)
oo <- dt[, list(list(.SD)), by = Z]$V1
names(oo) <- unique(dt$Z)

关于r - 按因子级别拆分数据帧并按这些级别命名数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17695443/

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