2013-04-09 29 views
1

如何从这个表中创建一个列表:如何创建和填充从一个表对象列表中的R

t1 <- structure(c(1L, 2L, 3L), .Dim = 3L, .Dimnames = structure(list(c("a", "b", "c")), .Names = ""), class = "table") 

因此要获得一个名单表的每一个“名称”,并且每个列表会适当的“名称”的长度?预计产出将是:

> result 
$a 
[1] NA 
$b 
[1] NA NA 
$c 
[1] NA NA NA 

我本来以为一个lapply调用会做的伎俩:

lapply(t1,function(x) list(names(x)=NA,length(x))) 

但它显然是行不通的。有任何想法吗 ?

回答

2
t1 
## 
## a b c 
## 1 2 3 

lapply(t1, function(x) rep(NA, x)) 
## $a 
## [1] NA 
## 
## $b 
## [1] NA NA 
## 
## $c 
## [1] NA NA NA 
## 
1

你可以做这样的事情:

R> lapply(as.list(t1), function(v) {return(rep(NA,v))}) 
$a 
[1] NA 
$b 
[1] NA NA 
$c 
[1] NA NA NA 
相关问题