r 根据条件重新编码字符串变量
r recode a string variable based on a condition
我知道这可能很简单,但我找不到解决它的方法。
我想根据另一个变量的条件重新编码一个字符串变量(到同一个变量中),但出现错误。
一个工作示例:
VAR1<-c("SUC1","SUC2","SUC3","SUC4","SUC5","SUC6","SUC7","SUC8","SUC9","SUC10")
N<-c(356,415,34,1126,21,232,183,53,19,17)
df<-data.frame(VAR1,N)
df$VAR1[df$N<=30] <- "OTRO"
然后我收到警告:
Warning message:
In `[<-.factor`(`*tmp*`, df$N <= 30, value = c(1L, 3L, 4L, 5L, NA, :
invalid factor level, NA generated
我知道这不是错误,但是当我查看结果时,VAR1 中 N 值小于或等于 30 的所有类别都设置为 NA
我做错了什么?
另一个转折点:
如果我从聚合中获取数据,我会得到同样的错误,假设:
agg1<-aggregate(VAR3~VAR1,df1,NROW)
和
df<-data.frame(agg1,stringAsFactor=FALSE)
重新编码似乎不起作用
有线索吗?
尝试df<-data.frame(VAR1,N, stringsAsFactors=FALSE)
我知道这可能很简单,但我找不到解决它的方法。 我想根据另一个变量的条件重新编码一个字符串变量(到同一个变量中),但出现错误。
一个工作示例:
VAR1<-c("SUC1","SUC2","SUC3","SUC4","SUC5","SUC6","SUC7","SUC8","SUC9","SUC10")
N<-c(356,415,34,1126,21,232,183,53,19,17)
df<-data.frame(VAR1,N)
df$VAR1[df$N<=30] <- "OTRO"
然后我收到警告:
Warning message:
In `[<-.factor`(`*tmp*`, df$N <= 30, value = c(1L, 3L, 4L, 5L, NA, :
invalid factor level, NA generated
我知道这不是错误,但是当我查看结果时,VAR1 中 N 值小于或等于 30 的所有类别都设置为 NA
我做错了什么?
另一个转折点: 如果我从聚合中获取数据,我会得到同样的错误,假设:
agg1<-aggregate(VAR3~VAR1,df1,NROW)
和
df<-data.frame(agg1,stringAsFactor=FALSE)
重新编码似乎不起作用
有线索吗?
尝试df<-data.frame(VAR1,N, stringsAsFactors=FALSE)