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
Post a Comment