2
我有一個我想使用產生的各種特徵密度直方圖數據集中的以下功能:ggplot找不到數據幀傳遞給函數
fraudSplitHist <- function(dataframe, stat_col, signal_col='fraud') {
hist_data <- dataframe[,c(stat_col, signal_col)]
colnames(hist_data) <- c('stat', 'fraud')
hist_data$stat <- winsor1(hist_data$stat) # remove outliers
ggplot(hist_data, aes(hist_data$stat, fill=as.factor(hist_data$fraud))) +
geom_histogram(alpha=0.5, aes(y=..density..), position='identity', binwidth=1)
}
運行它總是給我這個錯誤
fraudSplitHist(dataframe=data, stat_col='some_column_of_values')
Error in eval(expr, envir, enclos) : object 'hist_data' not found
但是,它的工作原理與qplot
fraudSplitHist <- function(dataframe, stat_col, fraud_col='fraud') {
hist_data <- dataframe[,c(stat_col, fraud_col)]
colnames(hist_data) <- c('stat', 'fraud')
hist_data$stat <- winsor1(hist_data$stat)
qplot(data=hist_data, x=stat, geom="histogram", fill=as.factor(fraud), binwidth=10,
position='identity')
}
任何想法我可能是米西在這裏?
類似這樣的問題是很容易回答,如果你確實提供了[重複的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-再現性好的例子)完整的樣本數據,所以我們可以複製/粘貼到R並重新創建問題。 – MrFlick 2014-10-08 19:43:18
您永遠不應該使用'$'來選擇'aes()'中的列。見'?aes_string'。 – joran 2014-10-08 19:44:18