Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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 如何用整个数据集缺失的值替换数字?_R_Function_For Loop_If Statement - Fatal编程技术网

R 如何用整个数据集缺失的值替换数字?

R 如何用整个数据集缺失的值替换数字?,r,function,for-loop,if-statement,R,Function,For Loop,If Statement,我已经编写了一个用户定义的函数,它应该获得一个数据集和一些符号,扫描整个数据集,并用缺少的值替换这个数字的所有实例。在我将代码放入一个用户定义的函数(循环和条件起作用)之前,代码工作得很好。我不明白为什么它现在不起作用。没有警告或错误,只是不起作用。另外,我想问,是否有办法选择对哪些列执行此操作 我的代码是: repMissing = function(ds,x) { for(i in 1:nrow(ds)) { for(j in 1:ncol(ds)) {

我已经编写了一个用户定义的函数,它应该获得一个数据集和一些符号,扫描整个数据集,并用缺少的值替换这个数字的所有实例。在我将代码放入一个用户定义的函数(循环和条件起作用)之前,代码工作得很好。我不明白为什么它现在不起作用。没有警告或错误,只是不起作用。另外,我想问,是否有办法选择对哪些列执行此操作

我的代码是:

repMissing = function(ds,x)
{
  for(i in 1:nrow(ds))
  {
    for(j in 1:ncol(ds))
    {
      if (!is.na(ds[i,j]) && ds[i,j] == x)
      {
        ds[i,j] = NA
      }
    }
  }
}
我运行了以下代码:

repMissing(diet2,-99)
由于某种原因,-99仍然不是NA

任何建议都将不胜感激。谢谢大家!


编辑:这个问题与前面的问题不同,因为我不仅要问如何执行任务,还要问我的代码有什么问题,这与前面的问题不同。

如果要替换整个数据帧中出现的所有-99,可以使用:

df[ df == -99] <- NA

如果要替换整个数据帧中出现的所有-99,可以使用:

df[ df == -99] <- NA

谢谢你,山姆,我当然会采纳你的建议,但就一般知识而言,为什么我的代码不起作用?那是在我把它放进函数之前……谢谢你,山姆,我当然会采纳你的建议,但就一般知识而言,为什么我的代码不起作用?在我把它放进函数之前。。。。
df[, colnames(df) %in% df('a')][df[, colnames(df) %in% c('a')] == -99] <- NA