5

私はRプログラミング言語が初めてです。データセット内の1 つの列だけにnull 値を代入する方法があるかどうかを知りたかっただけです。私が見た代入コマンドとライブラリはすべて、データセット全体の null 値を代入するためです。

4

3 に答える 3

14

Hmiscパッケージを使用した例を次に示します。impute

library(Hmisc)
DF <- data.frame(age = c(10, 20, NA, 40), sex = c('male','female'))

# impute with mean value

DF$imputed_age <- with(DF, impute(age, mean))

# impute with random value
DF$imputed_age2 <- with(DF, impute(age, 'random'))

# impute with the media
with(DF, impute(age, median))
# impute with the minimum
with(DF, impute(age, min))

# impute with the maximum
with(DF, impute(age, max))


# and if you are sufficiently foolish
# impute with number 7 
with(DF, impute(age, 7))

 # impute with letter 'a'
with(DF, impute(age, 'a'))

?impute代入の実装方法の詳細については、 を参照してください。

于 2012-10-29T01:30:28.183 に答える
0

これを行うことができるパッケージはたくさんあります。(データに関するもう少し情報があれば、最適なオプションを提案するのに役立ちます)

一例として、 VIMパッケージを使用できます。

kNN (k-nearest-neighbor imputation)と呼ばれる関数があります。この関数には、どの変数を代入するかを指定できるオプション変数があります。

次に例を示します。

library("VIM")
kNN(sleep, variable = c("NonD","Gest"))

この例で使用した睡眠データセットには、VIM が付属しています。

列に時間依存性がある場合は、時系列代入パッケージを使用して代入することも理にかなっています。この場合、たとえばimputeTSパッケージを使用できます。次に例を示します。

  library(imputeTS)
  na_kalman(tsAirgap)

ここで例として使用される tsAirgap データセットは、imputeTS にも付属しています。

于 2016-11-11T00:35:05.737 に答える