2013-04-09 48 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 
相關問題