我有一些问题需要理解我所犯错误的逻辑。
我需要用数字1替换非NA。
我在矢量-a上测试了简单的代码:
a<-c("a","a","a", NA,"a")
a[!is.na(a)]<-1
它有效。
但我需要的是在data.frame上应用相同的过程,使用:
导入data<-read.table ("dataframe.csv", header = T, sep = ",",na.strings= c(" ","") )
但是当我运行与之前编写的代码相同的代码时
data$column1[!is.na(data$column1)]<-1
R返回:
警告讯息:
In `[<-.factor`(`*tmp*`, !is.na(data$column1), value = c(NA_integer_, :
invalid factor level, NA generated
有人知道问题出在哪里吗?
答案 0 :(得分:1)
最后我能够使用本论坛主题中解释的替换功能
data<-replace(data.frame(lapply(data, as.character), stringsAsFactors = FALSE),
!is.na(data), "1")