【发布时间】:2014-09-11 00:18:44
【问题描述】:
我有一个矩阵 data.mat,它看起来像:
A B C D E
45 43 45 65 23
12 45 56 NA NA
13 4 34 12 NA
我正在尝试将其转换为列表列表,其中每一行都是更大列表中的一个列表。我执行以下操作:
list <- tapply(data.mat,rep(1:nrow(data.mat),ncol(data.mat)),function(i)i)
这给了我一个列表列表,其中包括 NA,例如:
$`1`
[1] 45 43 45 65 23
$`2`
[1] 12 45 56 NA NA
$`3`
[1] 13 4 34 12 NA
但我想要的是:
$`1`
[1] 45 43 45 65 23
$`2`
[1] 12 45 56
$`3`
[1] 13 4 34 12
有没有在 tapply 通话期间或事后删除 NA 的好方法?
【问题讨论】:
-
不要使用像
list这样的变量名,因为它在 R 中用于列表。 -
好点。我通常不会——我只是想让它为示例通用。但记住这一点很好,因为我有时对命名约定很草率。