R 是否有一行代码可以添加到函数中以删除所有=0的结果

R 是否有一行代码可以添加到函数中以删除所有=0的结果,r,R,在平均值或中间值的函数中,是否可以添加一行代码,以删除=0的代码 函数示例:df下面将计算数据帧每行中所有非零和非na值的中值 df <- iris apply(df, 1, FUN = function(x){ values_to_calculate <- x[which(!x == 0)] return(median(values_to_calculate, na.rm = T)) }) apply函数有三个参数,请在此处查看文档: 矩阵/向量/数据帧:在本例中,包含

在平均值或中间值的函数中,是否可以添加一行代码,以删除=0的代码


函数示例:df下面将计算数据帧每行中所有非零和非na值的中值

df <- iris 
apply(df, 1, FUN = function(x){
  values_to_calculate <- x[which(!x == 0)]
  return(median(values_to_calculate, na.rm = T))
})
apply函数有三个参数,请在此处查看文档:

矩阵/向量/数据帧:在本例中,包含iris数据集的df Margin:在本例中,Margin设置为1,这意味着apply将遍历每一行。要遍历每一列,请将1更改为2,或者对于每个单元格,将1更改为c1,2 应用于边距的函数:在本例中,我们创建一个自定义函数,并将每一行传递到变量x下的该自定义函数中。然后,我们将从行中删除所有非零值,最后返回中值
注意:我通常不建议从中位数计算中删除0,除非数据集中首先出现0的原因是众所周知的

欢迎!请让你的问题具有可复制性:我的意思是它是可复制的,因为那行代码将是完全相同的。我猜@broti的意思是。。上面的代码,setNames。。我们可以运行它而不会抛出错误。语法错误。您能否详细说明使用iris示例需要什么,以及您的预期输出是什么?我将在一分钟内尝试使用iris示例,我的实际数据集中的输出是我所有行名称的一长串中间值,这些中间值是多个列的中间值,这些列是重复测试的结果。产生的许多中间值是0,而其他许多中间值是正整数。我想知道是否有一行代码可以添加,这意味着只有0以上的答案才是showni认为可以用0完成的