欠損値
欠損値はNA (not available) で表現される。不可能値 (impossible value , e.g., 0を分母にして割ったり) はNaN (not a number) 。文字変数でも数値変数でも同じ。
欠損値があるかどうかを調べる
					x <- c(1,2,3,NA) # データフレームでも可
					is.na(x) # 欠損値のある要素にはTRUE, ない要素にはFALSE。入ったベクトルならベクトル、データフレームならデータフレームを返す。
					sum(is.na(x)) # 欠損値の数の総計
				
欠損値の再コード化 (入力データの置換)
				# 99と入力してある欠損値をNAに置き換える。
				# サンプル
				  x <- data.frame(matrix(c(rnorm(5), 99, 99, rnorm(13)), nr=10))
				  names(x) <- c("v1", "v2")
				  x
				# 置換 (変数ごとに指定) 
				x[x$v1==99, "v1"] <- NA
				x
				
				# 一括で置換 (変数ごとに指定しない) 
				x[x==99] <- NA
				x
				
欠損値の除去
欠損値を除去した関数の適用
x <- c(1,2,NA,3)
					mean(x)          # returns NA
					mean(x, na.rm=TRUE) # returns 2
					
complete.cases() 関数は行ごとにNAがあるならFALSE、ないならTRUEをかどうかのTRUE/FALSEをベクトルで返す。
					complete.cases(x)
					!complete.cases(x) # T/Fの逆転。欠損値があるとT、ないとF
					
					
					# 欠損データのある行だけを抜き出す。
					x[!complete.cases(x),]
					
na.omit() 欠損値のあるケースをまるごと除いた (リストワイズ除去した) オブジェクトを返す.
					na.omit(x)
					
					
高度な欠損値処理
多重補完法 (multiple imputation) などの高度な欠損値処理にはAmelia II、Mice、mitools なんかを使おう。
その他
		
		# サンプル
		dat <- iris
			# 特定の値を欠損値とする
			dat[dat=="setosa"] <- NA
			dat[dat==9999] <- NA # 数値もできる
		
			# データフレームの変数ごとに欠損値があるかどうか
			sapply(dat, function(x) sum(is.na(x)))
			# 変数を指定して欠損値とする。データ内に既に欠損値があるとエラーになる
			dat[dat$Species=="virginica", "Species"] <- NA
			# 欠損値の除去
			# 関数内では大体na.rm=Tとする
			mean(x, na.rm=T)
			# データフレームから行 (ケース) ごと除去
			na.omit(dat)
			Amelia II, Mice, mitools といったパッケージがあるらしい
			# おまけ。特定の値を欠損値とする...のがわからなかったときに書いた
			dat2 <- iris
			for(i in 1:ncol(dat)){
			dat2[,i] <- replace(dat[,i], which(dat[,i]=="setosa"), NA)
			}