这是关于通过向量对数据帧进行子集化的先前问题的更复杂的迭代 . 所以在这种情况下,我有一个非常大的数据框,其中包含许多作物数据列 . 在该数据帧中有一个名为“STshort”的列,其中包含许多尾部错误 . 我想从此列中删除上限10%和下限10%的值,并按以下方式尝试 .

首先,我为列“STshort”创建一个对象,如下所示 .

sh<-Maindata[,"STShort"]

然后我尝试按照以下方式按照本专栏的五分之一对数据框进行子集化 . 该逻辑通常用于对矢量进行子集化 .

Maindata<-Maindata[sh>=(quantile(sh,.10,na.rm=TRUE))&sh<=(quantile(sh,.9,na,rm=TRUE)),]

我收到以下错误消息 .

quantile.default中的错误(sh,0.1,na.rm = TRUE):不允许使用因子

本专栏中的一些数据

dput(sh[1:10])

structure(c(73L, 54L, 145L, 127L, 37L, 115L, 102L, 119L, 239L, 
198L), .Label = c("-10536.5041", "-1081.8875", "-11360.69846", 
"-1179.834949", "-1241.222986", "-1259.302658", "-1277.333333", 
"-1286.085441", "-1289.74", "-1294", "-1333.25", "-1334.138686", 
"-1335.521379", "-1369.85455", "-13715.36843", "-1376.361502", 
"-1380.27099", "-14.39869997", "-143.0545455", "-1516.133764", 
"-156.2526551", "-1579.5", "-15917.49503", "-1683.4375", "-1699.0625",

关于如何可以想到这一点的任何想法?