如何使函数删除向量

时间:2015-03-25 18:49:18

标签: r

我今天正在练习我的功能写作技巧。有人可以解释为什么我写的函数不会从数据框中删除第2列和第3列吗?

data <- data.frame(x = 2, y = 3, z = 4)
rmvar <- function(x){
  lapply(X = x, FUN = function(x){
    x <- NULL})}
rmvar(data[,2:3])

1 个答案:

答案 0 :(得分:1)

你可以修改它

rmvar <- function(x, indx){
  x[indx] <- lapply(x[indx], FUN=function(x) x <- NULL)
  x
 }

rmvar(data, 2:3)
#  x
#1 2

正如@nico在评论中提到的那样,仅data[-(2:3)]就更容易了。但是,我想你想用lapply/NULL来做这件事。