R 替换另一列中以is.na为条件的行值
简单逻辑替换问题;我有一个数据帧,如:R 替换另一列中以is.na为条件的行值,r,replace,conditional,R,Replace,Conditional,简单逻辑替换问题;我有一个数据帧,如: mydf <- expand.grid(var1 = c('type1', 'type2'), var2 = c(7, 6, "NA"), var3 = 9) mydf与注释中一样,字符串“NA”不是NA值。因此,is.na(“na”)isFALSE并且所有行都被选中。只需将定义中的“NA”替换为“NA” mydf <- expand.grid(var1 = c('type1', 'type2'), var2 = c(7, 6, NA), v
mydf <- expand.grid(var1 = c('type1', 'type2'), var2 = c(7, 6, "NA"), var3 = 9)
mydf与注释中一样,字符串“NA”
不是NA
值。因此,is.na(“na”)
isFALSE
并且所有行都被选中。只需将定义中的“NA”替换为“NA”
mydf <- expand.grid(var1 = c('type1', 'type2'), var2 = c(7, 6, NA), var3 = 9)
mydf$var3[!is.na(mydf$var2)] <- mydf$var2[!is.na(mydf$var2)]
mydf您的“NA”
正在使var2
成为一个因素-只需使用NA
。然后您需要mydf$var3[!is.NA(mydf$var2)]您说“新的var3应该是7,7,6,6,NA,NA”。你是说7,7,6,6,9,9吗?是的,我的错应该是7,7,6,6,9,9。以上解决方案非常有效,非常感谢。1,1,2,2,3,3是从哪里来的?由于var2被强制为一个因子-在上面的原始mydf中,请查看str(mydf)
非常感谢您的澄清。
mydf$var3[!is.na(mydf$var2)] <- 5
mydf$var3[!is.na(mydf$var2)] <- mydf$var2
mydf <- expand.grid(var1 = c('type1', 'type2'), var2 = c(7, 6, NA), var3 = 9)
mydf$var3[!is.na(mydf$var2)] <- mydf$var2[!is.na(mydf$var2)]