R将列数据帧中的NaN替换为特定行中的rowMean 3下一列

R将列数据帧中的NaN替换为特定行中的rowMean 3下一列,r,replace,nan,R,Replace,Nan,注意:在我的真实数据集中,一行中的有效值不可能少于两个 我想用特定行的rowMeans替换NaN 我试着去申请: apply(dat,1, FUN= function(x) ifelse(is.na(x[1]),rowMeans(dat[,1:3], na.rm=TRUE), x[1])) 但在我的数据中,如果存在NaN,我总是获得相同的vlaue。问题似乎在于,在apply(,1,)中,我无法编写rowMeans(dat[1:3])来获得特定的值(我猜)。你能给出一个可复制的例子吗?你使用的

注意:在我的真实数据集中,一行中的有效值不可能少于两个

我想用特定行的rowMeans替换NaN 我试着去申请:

apply(dat,1, FUN= function(x) ifelse(is.na(x[1]),rowMeans(dat[,1:3], na.rm=TRUE), x[1]))

但在我的数据中,如果存在NaN,我总是获得相同的vlaue。问题似乎在于,在apply(,1,)中,我无法编写rowMeans(dat[1:3])来获得特定的值(我猜)。

你能给出一个可复制的例子吗?你使用的是
apply
,边距为1,因此,正如你已经知道的,你正在将你的函数应用到每一行,因此
x
对应于一行。因此,您所寻找的可能类似于:
apply(dat,1,FUN=function(x){x[is.na(x)]这很完美,谢谢。我也试过了,但显然我把x设置为完整的数据集,所以我得到了错误的值-愚蠢,thx@CathG你应该把它作为一个答案贴出来,我会给这个问题贴上标签,这样你就可以在标签上获得一些分数