编写此R数据清理功能的更好方法是什么?

时间:2016-08-11 18:42:29

标签: r

我正在编写一个R函数,它接受一个数据帧列(可能最好是类型因子),并将用户定义频率以下的所有条目聚集在一起作为"其他。"这样做是为了清理数据。

这是我写的:

zcut <- function(column, threshold){
  dft <- data.frame(table(column))
  dft_ind <- sapply(dft$Freq, function(x) x < threshold)
  dft_list <- dft[[1]][dft_ind]
  levels(column)[levels(column) %in% dft_list] <- "Other"
  return(column)
}

我认为这非常简单,但有没有办法让我的代码更简洁或更准确?

我会在Code Review堆栈交换中问过这个问题,虽然我不清楚很多R专家潜伏在那里。

1 个答案:

答案 0 :(得分:1)

此处您不需要sapply。试试:

dft_ind <- dft$Freq < threshold

这应该可以加速大数据框架的功能。