1

我有以下行

apply(wrld_simpl@data, 1, FUN=function(x) sum(is.na(x)))

给出以下输出

 ATG DZA AZE ALB ARM AGO ASM ARG AUS BHR BRB BMU BHS BGD BLZ BIH BOL MMR 
  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 
BEN SLB BRA BGR BRN CAN KHM LKA COG COD BDI CHN AFG BTN CHL CYM CMR TCD 
 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 

等等。我知道为这个数据集计算 NA 并没有多大意义,但是一旦我将这些数据与“本土”数据集合并,它就更有意义了,我的挑战仍然是一样的。后两个问题的出现是因为我想将其放入我使用 knitr 的报告中:

  1. 我可以在交叉表中为所有变量生成此输出,即左列中的国家和一些变量(例如 wrld_simpl@data[6:11])作为标题?

  2. 如何将国家代码与国家名称 (wrld_simpl@data$NAME) 交换,因为不是每个读者都熟悉代码?

  3. 如何将输出放入漂亮的表格(边框、标题、标签)?

任何指针表示赞赏!

谢谢!

4

1 回答 1

2

我将plyr包用于此类事情,因为 **ply-functions 的使用方式比默认的 *apply 方法更一致r-base

library("plyr")
library("maptools")
data( wrld_simpl )
adply( wrld_simpl@data, 1, function(x) {
  sum(is.na( x[ c("LON", "LAT") ] )) # change to the columns you want to count the NA's on
})[ ,5:12 ]
于 2012-11-01T12:51:40.320 回答