作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想构建一个函数,例如 splitdf(columnA + columnB ~ ., dataframe)
这样它就会为每对可能的columnA 和columnB
返回一个子数据帧列表。它类似于 table
或 xtabs
所以,对于
> a <- data.frame(x=1:3, y=1:3, z=1:9)
> a
x y z
1 1 1 1
2 2 2 2
3 3 3 3
4 1 1 4
5 2 2 5
6 3 3 6
7 1 1 7
8 2 2 8
9 3 3 9
我期待:
x = 1, y = 1,
x y z
1 1 1
1 1 4
1 1 7
x = 2, y = 2,
x y z
2 2 2
2 2 5
2 2 8
x = 3, y = 3,
x y z
3 3 3
3 3 6
3 3 9
我意识到 split
和 dlply
可以工作。但是它们都没有为我提供操纵类别名称的好方法?如何使这些名称有意义?就像我想看到 x = 1, y = 1
而不是 $1.1
最佳答案
这是你想要的吗?
> library (plyr)
> dlply(a, .(x, y))
$`1.1`
x y z
1 1 1 1
2 1 1 4
3 1 1 7
$`2.2`
x y z
1 2 2 2
2 2 2 5
3 2 2 8
$`3.3`
x y z
1 3 3 3
2 3 3 6
3 3 3 9
更新
> z <- dlply(a, .(x, y))
> names(z) <- dlply(a, .(x, y), function(x) sprintf("x = %d, y = %d", x$x[1], x$y[1]))
> z
$`x = 1, y = 1`
x y z
1 1 1 1
2 1 1 4
3 1 1 7
$`x = 2, y = 2`
x y z
1 2 2 2
2 2 2 5
3 2 2 8
$`x = 3, y = 3`
x y z
1 3 3 3
2 3 3 6
3 3 3 9
关于r - 如何将数据框拆分为给定列名的数据框列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19927932/
我是一名优秀的程序员,十分优秀!