我今天正在练习我的功能写作技巧。有人可以解释为什么我写的函数不会从数据框中删除第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])
答案 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
来做这件事。