我使用下面的代码尝试用特定的值替换低于底部2.5%和高于顶部97.5%的变量值。您可以执行该代码。它提供了开放的数据文件。替换异常值R中的2.5%,97.5%的代码错误
credit<-read.csv("http://freakonometrics.free.fr/german_credit.csv", header=TRUE)
fun <- function(x){
quantiles <- quantile(x, c(.025, .975))
x[ x < quantiles[1] ] <- quantiles[1]
x[ x > quantiles[2] ] <- quantiles[2]
x
}
fun(credit)
但是出现错误信息。
Error in `[.data.frame`(x, order(x, na.last = na.last, decreasing = decreasing)) :
undefined columns selected
什么问题?我很乐意提供任何帮助!
+加评论
我发现上面的功能不会在数据帧的工作,但只在矢量工作。
我可以改变用下面的代码中的数据文件中每个变量的异常:
然而,我的数据文件中有这么多的变数,这是不方便的一个输入一个代码。
那么如何更改变量的异常值,即特定值不是pmax & pmin?
问题是,您没有选择任何列,因为错误说。 'x'是整个数据帧。 –
@Rich Scriven 感谢您的回复。但我不明白你的意思。你能用代码解释吗? –
'分位数(x,c(.025,.975))'是问题线。试用'分位数(credit,c(.025,.975))'。你试图运行'分位数'的列是什么?它只适用于数字矢量,而不适用于整个数据框。 –