R 为什么na.omit()不删除列
R 为什么na.omit()不删除列,r,R,na.omit()删除矩阵或数据帧中的行,但我想知道为什么它没有删除列而不是行的选项 我知道有如下解决方案: df[sapply(df,函数(x)!any(is.na(x))]() 但是为什么r实现的函数不支持它呢?我认为这是一种必然的做法,可以实现如下论点: 省略(df,by.rows=FALSE) 此处是一些简单的样本测试数据(如果需要),预期输出将在第3列和第6列中删除: df<-mtcars df[5:15,6] <- NA df[5:15,3] <- NA dfna
na.omit()
删除矩阵或数据帧中的行,但我想知道为什么它没有删除列而不是行的选项
我知道有如下解决方案:
df[sapply(df,函数(x)!any(is.na(x))]
()
但是为什么r实现的函数不支持它呢?我认为这是一种必然的做法,可以实现如下论点:
省略(df,by.rows=FALSE)
此处是一些简单的样本测试数据(如果需要),预期输出将在第3列和第6列中删除:
df<-mtcars
df[5:15,6] <- NA
df[5:15,3] <- NA
dfna.ommit
函数主要用于处理回归函数的data.frame对象。为了运行回归计算的数学机制,需要省略案例(即行)。您可以从lm的na.action参数中看到各种选择,但这适用于许多其他类型的回归。它的基本设计是允许lm
成功,否则它将产生无用的结果。公式规范是省略列的装置
na.行动一种函数,用于指示数据包含NAs时应执行的操作。默认值由选项的na.action设置设置,如果未设置,则为na.fail。“factory fresh”默认值为na.omit。另一个可能的值为NULL,无操作。值na.exclude可能很有用
na.action的选择可能会影响
predict
的输出。请注意predict.lm的默认值不同:na.action=na.pass
“为什么”问题通常是基于观点的,如果可以回答的话,就不适合堆栈溢出。哦,好吧,抱歉,我希望有一个逻辑原因或类似的原因。那么我应该删除这个问题吗?我对StackOverflow很陌生,你可以等着看其他人是否不同意我的观点。您也可以尝试在R公共聊天室中提问(访问右上角的聊天室)。na.omit exists删除不完整的观察结果,删除列在概念上是完全不同的。它只是“几何”相关。使用purr
可以尝试modify\u if(df,anyNA,~NULL)
或df[]