首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从data.frame中删除指定行

如何从data.frame中删除指定行
EN

Stack Overflow用户
提问于 2019-02-12 23:09:19
回答 2查看 50关注 0票数 0

我想按列将此函数应用于data.frame。随后,应从data.frame中删除生成了NA`s的所有行。

代码语言:javascript
复制
remove_outliers <- function(x, na.rm = TRUE, ...) {
  qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...)
  H <- 1.5 * IQR(x, na.rm = na.rm)
  y <- x
  y[x < (qnt[1] - H)] <- NA
  y[x > (qnt[2] + H)] <- NA
  #y <- y[!is.na(y)]
  y
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-12 23:11:54

要使用IQR查找异常值,可以使用apply按列应用函数,将异常值替换为NA。通过使用它(),你可以找到“datavector”的索引位置--也就是你的列被堆叠了起来--并且通过模运算,你可以得到检测到NA的行号。要删除唯一值,只需在行上索引dataframe-c()。

代码语言:javascript
复制
X <- apply(X,  MARGIN = 2, FUN = remove_outliers)
na_rows <- unique(which(is.na(X)) %% dim(X)[1])
X <- X[-na_rows, ]
票数 0
EN

Stack Overflow用户

发布于 2019-02-12 23:14:22

您有na.omit和这个函数complete.cases

它可能会帮助您查看其他可用的功能

y <- y[complete.cases(y), ]

应该这么做

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54653121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档