0

欠落している値をパッケージに再コーディングしようとすると、NA次のエラーが発生します。Repicalc

 recode(trstlglR, 99 , NA, dataFrame=ESSround5)
 Error in search()[[pos]] : attempt to select more than one element

コマンドは私が望むことを実行しているように見えますが、何かが足りないのではないかと心配しています。データフレームが大きすぎて、すべての値をチェックできません。誰かこれについて何か経験がありますか?

複製可能な例:

structure(list(trstlglR = c(0L, 0L, 0L, 1L, NA, NA, NA, NA, 0L, 
0L), trstplcR = c(0L, 0L, 0L, 0L, 0L, NA, NA, 0L, 0L, 0L), plcarcrR = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, NA, NA)), .Names = c("trstlglR", 
"trstplcR", "plcarcrR"), row.names = c(1L, 2L, 3L, 5714L, 2450L, 
2980L, 3837L, 6136L, 2197L, 2198L), class = "data.frame")
4

1 に答える 1

2

を見ると?recode、例は最初に次のことを行います。

use(.data)

実行する前にrecode。さて、 とは何かを読むと?use、次のことがわかります。

'use' は、R データ フレームだけでなく、Dbase (.dbf)、Stata (.dta)、SPSS (.sav)、EpiInfo (.rec)、カンマ区切り値 (.csv) 形式からデータセットを読み取ります。デスティネーション データ フレームは、デフォルトで「.data」としてメモリに保存され、検索パスに自動的にアタッチされます。この設定は、'des'、'summ'、'recode'、'label.var' などを含む 'epicalc' の他のコマンドの基礎となります。

したがって、あなたがしなければならないことは次のとおりです。

set.seed(45)
df <- data.frame(x=sample(1:3, 20, replace=T), y=sample(20))

use(df) # first to copy this to .data and attach.
recode(x, 2, NA, df) # not it should work without errors

#     x  y
# 1  NA 15
# 2  NA  6
# 3  NA  3
# 4   3  8
# 5  NA  1
# 6  NA 16
# 7   3  5
# 8   3  9
# 9   1 10
# 10  3 20
# 11 NA 11
# 12  1  4
# 13 NA  2
# 14 NA 12
# 15  1 13
# 16  3 17
# 17 NA 18
# 18  3 19
# 19  1  7
# 20  1 14
于 2013-02-25T17:50:49.680 に答える