替换R数据帧中的值
问题描述:
我有一个6列1800行的数据帧。数据从软件导出,结果为“是”,“否”和“ - ”(对于未记录的数据)。我想改变 - 对于NA,是到1,否为0.是否有一种好方法可以一次完成这一切?替换R数据帧中的值
我试过datap[datap=="-"] <- NA
,它将“ - ”的所有值改为<NA>
。我认为这是我想要的?然后,当我试图datap[datap=="No"] <- 0
,我得到了一个错误:
> 1: In `[<-.factor`(`*tmp*`, thisvar, value = "0") :
invalid factor level, NA generated
而所有的“不”的价值观成为NA。我在这里做错了什么?
答
这样的事情可以做:
x <- sample(c("Yes", "No", "-"), 7, repl=TRUE)
y1 <- c("Yes", "No", "-"); y2 <- c(1, 0, NA)
y2[match(x,y1)]
在read.table()
设置的参数read.table(..., as.is=TRUE)
或read.table(..., stringsAsFactors=FALSE)
当你在数据读取方面尝试添加两个参数'从datap
使用'as.character'将列更改为'character',然后在替换之前用替换值替换或创建新级别。 – akrun
谢谢!皮埃尔的答案奏效了,但是当我将“是/否”更改为1/0时,他们是字符。如何将多列更改为数字,而不更改日期列?我一直在用'datap $ taskked Madison