2017-03-21 4 views
0

切断バージョン

truncate1 <- function(x) { 
qs <- quantile(x, c(.01, 0.99)) 
trimx <- x[x > qs[1] & x < qs[2]] 
return(trimx) 
    } 

データの切り捨てバージョン

TRU_BANK <- as.data.frame(BANK) 

外れ値

TRU_BANK$TVAR_AVG <- truncate1(TRU_BANK$TVAR_AVG) 
Error in `$<-.data.frame`(`*tmp*`, "TVAR_AVG", value = c(19.6, 35.2, 26.9, : 
replacement has 495 rows, data has 507 
+0

する必要があり、あなたは常に、このエラーが発生します。関数のこの部分は 'trimx <- x[x > qs [1]&x

+0

はい、私もそれを許可されています。どのように私はそれを調整する必要がありますか? – Rprogrammer

答えて

1

を制御するために独立変数のウィンザライズは、データフレームをサブセットする機能を改正ただの分野ではなく、新しいデータセットを返します。再現性のある何か:あなたはサブセットされなかったデータフレームを上のフィールドへのサブセットを返すとき

df <- data.frame(y = c(1,2,3,4,5), z = c(1,2,3,4,5)) 


truncate1 <- function(df, x) { 
    qs <- quantile(df[ ,x], c(.01, 0.99)) 
    trimx <- df[ df[ ,x] > qs[1] & df[ ,x] < qs[2], ] 
    return(trimx) 
} 
##putting the quotes around the column name or using a column number is key 
new.df <- truncate1(df, "y") 

new.dfが

new.df 
    y z 
2 2 2 
3 3 3 
4 4 4 
+0

この方法に従えば、今は507行と0列のデータフレームが得られます。 – Rprogrammer

+0

これで、両方の列がデータフレーム上にあることを示すために私の例を修正しました。 –