私の元のデータセットには62個の変数があります。c(3:56)
関数をループさせたい変数についてboxplot.with.outlier.label
は、を参照してください。
source( "http://www.r-statistics.com/wp-content/uploads/2011/01/boxplot-with-outlier-label-r.txt")
しかし、私はすでにループを構築できる関数の構築に固執しています。ここにいくつかのモックアップデータがあります(もちろん、外れ値は表示されませんが、私の知る限り、これは問題の一部ではありません-私が間違っていることを証明してください!)
x <- rnorm(1000)
y <- rnorm(1000)
z <- sample(letters, 1000)
df <- as.data.frame(cbind(x,y,z))
df$x<- as.numeric(df$x)
df$y<- as.numeric(df$y)
df$z<- as.character(df$z)
これは正常に機能します。
boxplot.with.outlier.label(df$x, df$z)
そして、これはしません:
boxplotlabel <- function (data, var, name) {
datvar <- data[["var"]]
namevar <- data[["name"]]
boxplot.with.outlier.label(datvar, namevar)
}
boxplotlabel(df, x, z)
Error in plot.window(xlim = xlim, ylim = ylim, log = log, yaxs = pars$yaxs) :need finite 'ylim' values
In addition: Warning messages:
1: In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
2: In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
3: In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
4: In min(x) : no non-missing arguments to min; returning Inf
5: In max(x) : no non-missing arguments to max; returning -Inf
どこが間違っているのですか?または、関数に必要なループを実現する別の方法はありますboxplot.with.outlier.label
か?
助けてくれてありがとう!Gerit