簡體   English   中英

重新編碼錯誤

[英]error in recoding

嘗試使用epicalc包將我的缺失值重新編碼為R中的NA ,我收到以下錯誤:

 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")

如果你看一下?recode ,這些例子首先做:

use(.data)

在運行recode之前。 現在,如果您閱讀了什么是?use ,那么您會發現:

'use'從Dbase(.dbf),Stata(.dta),SPSS(.sav),EpiInfo(.rec)和逗號分隔值(.csv)格式以及R數據幀中讀取數據集。 目標數據框保存在內存中,默認為“.data”,並自動附加到搜索路徑。 此設置是'epicalc'的其他命令的基礎,包括'des','summ','recode','label.var'等。

所以你要做的是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM