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を数えることはあまり意味がないことを私は知っていますが、このデータを「自家製」のデータセットとマージすると、より意味があり、私の課題は変わりません。後者の2つの質問は、これを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 に答える