通过向量子集化数据帧:删除分位数

时间:2015-05-09 07:47:38

标签: r vector dataframe subset quantile

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

首先我为列#34生成一个对象; 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",

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

0 个答案:

没有答案