Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 替换另一列中以is.na为条件的行值_R_Replace_Conditional - Fatal编程技术网

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”)
is
FALSE
并且所有行都被选中。只需将定义中的“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)]