【发布时间】:2017-06-18 09:46:52
【问题描述】:
我想从这个数据框创建一个嵌套列表:
dat <- data.frame(var1 = c("A", "A", "B", "B"),
var2 = c("A_1", "A_2", "B_1", "B_2"),
val = 1:4)
> dat
var1 var2 val
1 A A_1 1
2 A A_2 2
3 B B_1 3
4 B B_2 4
我先用var1分割数据框:
mylist <- split(dat, dat$var1)
> mylist
$A
var1 var2 val
1 A A_1 1
2 A A_2 2
$B
var1 var2 val
3 B B_1 3
4 B B_2 4
现在我想为 var2 创建嵌套列表,我试过了:
mylist <- lapply(mylist, function(x) split(x, x$var2))
> mylist
$A
$A$A_1
var1 var2 val
1 A A_1 1
$A$A_2
var1 var2 val
2 A A_2 2
$A$B_1
[1] var1 var2 val
<0 Zeilen> (oder row.names mit Länge 0)
$A$B_2
[1] var1 var2 val
<0 Zeilen> (oder row.names mit Länge 0)
$B
$B$A_1
[1] var1 var2 val
<0 Zeilen> (oder row.names mit Länge 0)
$B$A_2
[1] var1 var2 val
<0 Zeilen> (oder row.names mit Länge 0)
$B$B_1
var1 var2 val
3 B B_1 3
$B$B_2
var1 var2 val
4 B B_2 4
但是如何避免创建不存在的 var1 和 var2 组合的空数据框?
【问题讨论】: