作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想按因子变量之一的级别拆分现有数据帧,以便拆分数据帧的名称对应于因子的级别。
df <- data.frame(cbind(X = 1:10, Y = rnorm(10)), Z = sample(LETTERS[1:3], 10, replace = TRUE))
df
是原始数据帧,我想将其拆分为三个名为
A
的数据帧,
B
和
C
,使得:
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/
我是一名优秀的程序员,十分优秀!