【发布时间】:2013-02-26 21:53:41
【问题描述】:
尝试使用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")
【问题讨论】:
-
似乎你必须先做
use(ESSround5),然后再做recode。 -
@Arun 确实错误消失了。
-
@GaryWeissman,你不需要
apply。你可以这样做:df$x[df$x == 99] <- NA
标签: r