如何从R中的表对象创建和填充列表

时间:2013-04-09 14:39:20

标签: r list

如何从此表创建列表:

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 个答案:

答案 0 :(得分: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 :(得分:1)

您可以这样做:

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