使* apply的输出看起来漂亮

时间:2012-11-01 12:24:28

标签: r knitr

我有以下一行

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

答案 0 :(得分:2)

我使用plyr包来做这样的事情,因为** ply-functions的使用方式比r-base的默认* apply方法更加一致。

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 ]