R replace the current column (values) with random extreme values, lower than 12.5% and upper than 87.5% -


i have data set 10 rows (values). data example:

value <- c(40.557669, 44.436873, 18.541628, 16.524613, 19.34,        10.07, 17.33, 20.155240, 15.31, 101.23,        )  data <- data.frame(value) 

using quantiles can select values between percentages 25%, 50%, 75%.

for example:

data$value <- data$value[data$value>=quantile(data$value)[4]] newvalue <- data$value[data$value>=quantile(data$value)[4]] data$value <- sample(newvalue, dim(data)[1], replace=t) 

i replace current values random extreme values, lower 12.5% , upper 87.5%.

how best?

thank you!

i having issues provided dataset, let's make reproducible. start data.frame 1 column, value, of 50 random integers:

set.seed(4) df <- data.frame(value = sample(1:100, 50)) 

get 12.5% , 87.5% ntiles:

ntiles <- quantile(df$value, probs = c(0.125, 0.875)) # ntiles #  12.5%  87.5%  # 19.625 85.500  

now subset data.frame lower extremes , upper extremes:

lowers <- subset(df, value < ntiles[1]) uppers <- subset(df, value > ntiles[2]) 

finally, sample combined group of lowers$value , uppers$value:

sample(c(lowers$value, uppers$value), nrow(df), replace = t) 

i used nrow(df) (which 50) grab same number of records original dataset.


Comments