Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.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 用另一个向量的连续元素替换一个向量中的NAs_R_Vectorization - Fatal编程技术网

R 用另一个向量的连续元素替换一个向量中的NAs

R 用另一个向量的连续元素替换一个向量中的NAs,r,vectorization,R,Vectorization,我想用序列中的元素替换向量的NA元素,例如: x <- c(1, NA, 5, NA, NA, 2, 12, NA) replace.seq <- -1:-4 # Can assume length(replace.seq) == sum(is.na(x)) goal <- c(1, -1, 5, -2, -3, 2, 12, -4) xPer@akrun: x[is.na(x)] <- replace.seq x[is.na(x)]Per@akrun: x[is.

我想用序列中的元素替换向量的NA元素,例如:

x <- c(1, NA, 5, NA, NA, 2, 12, NA)
replace.seq <- -1:-4  # Can assume length(replace.seq) == sum(is.na(x))
goal <- c(1, -1, 5, -2, -3, 2, 12, -4)
xPer@akrun:

x[is.na(x)] <- replace.seq
x[is.na(x)]Per@akrun:

x[is.na(x)] <- replace.seq

x[is.na(x)]您可以使用
replace

x <- replace(x, is.na(x), replace.seq)

x您可以使用
replace

x <- replace(x, is.na(x), replace.seq)

x
x[is.na(x)]谢谢@akrun!我建议您将标题改为“将一个向量中的NAs替换为另一个向量的顺序元素”?只是让它更清楚一点。为了进行比较,
zoo::locf
NA
替换为同一向量中的前瞻性值;“反转向量的顺序将允许回望填充。”卡尔维特霍夫同意,这更清楚。现在已更改,谢谢。@akrun您能帮我解答这个问题吗?
x[is.na(x)]Duh,谢谢@akrun!我建议您将标题改为“将一个向量中的NAs替换为另一个向量的顺序元素”?只是让它更清楚一点。为了进行比较,
zoo::locf
NA
替换为同一向量中的前瞻性值;“反转向量的顺序将允许回望填充。”卡尔维特霍夫同意,这更清楚。现在已更改,谢谢。@akrun您能帮我解答这个问题吗?您应该指出,
R
将根据需要回收值,因此,如果您的输入向量中
replace.seq
中的值少于
NA
s,您应该小心您想要做什么。或者:
x@Sven真的吗<代码>x[is.na(x)]@Jthorpe是的,真的。在第一个命令之后,
x
不包含任何
NA
s。尝试
x
ifelse
失败,因为它根据
x
中的索引回收
replace.seq
的值。它返回
c(1,-2,5,-4,-1,2,12,-4)
,其中第一个-2出现是因为它是
x
的第二个元素,-4作为第四个元素,-1再次作为第五个元素(循环到第一个),等等。应该指出
R
将根据需要循环使用值,因此,如果
replace.seq
中的值少于输入向量中的
NA
s,那么您应该注意要做什么。或者:
x@Sven真的吗<代码>x[is.na(x)]@Jthorpe是的,真的。在第一个命令之后,
x
不包含任何
NA
s。尝试
x
ifelse
失败,因为它根据
x
中的索引回收
replace.seq
的值。它返回
c(1,-2,5,-4,-1,2,12,-4)
,其中第一个-2出现是因为它是
x
的第二个元素,-4作为第四个元素,-1再次作为第五个元素(循环到第一个),等等。谢谢,如果你想生成一个新的向量,这会更好。谢谢,如果你想生成一个新的向量,这会更好。