我正在尝试使用lapply
修剪我的一些数据。我要做的是修剪列2:4
(删除异常值或极值),但也要删除列中的行。
每列中有一些异常值的数据。所以我想删除值100
和-100
inV1
但也删除数据中的整行。同时删除值80
和-80
列V2
- 随后也删除该行。
trimdata <- NULL
trimdata$ID <- seq.int(102)
trimdata$V1 <- c(rnorm(100), 100, -100)
trimdata$V2 <- c(rnorm(100), 80, -80)
trimdata$V3 <- c(rnorm(100), 120, -120)
trimdata <- as.data.frame(trimdata)
library(DescTools)
trimdata <- lapply(trimdata, function(x) Trim(x, trim = 0.01))
trimdata <- as.data.frame(trimdata)
上面的代码将函数应用于所有列(删除 ID 列中的极值)
这段代码:
trimdata[2:4] <- lapply(trimdata[2:4], function(x) Trim(x, trim = 0.01))
返回以下错误
Error in `[<-.data.frame`(`*tmp*`, 2:4, value = list(V1 = c(0.424725933773568, :
replacement element 1 has 98 rows, need 100
所以我试图根据 2:4 列进行修剪,但也将其应用于第 1 列。