亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在aes內的局部變量

在aes內的局部變量

德瑪西亞99 2019-08-28 09:48:50
在aes內的局部變量aes當我用ggplot繪圖時,我正在嘗試使用局部變量。這是我的問題歸結為本質:xy <- data.frame(x=1:10,y=1:10)plotfunc <- function(Data,YMul=2){     ggplot(Data,aes(x=x,y=y*YMul))+geom_line()}plotfunc(xy)這會導致以下錯誤:Error in eval(expr, envir, enclos) : object 'YMul' not found好像我不能使用局部變量(或函數參數)aes??赡苁怯捎赼es當局部變量超出范圍后執行的內容會發生嗎?我怎樣才能避免這個問題(除了不使用局部變量aes)?
查看完整描述

3 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

由于@Justin:ggplot()aes似乎已認準了YMuldata數據幀的第一個,如果沒有找到,然后在全球環境。我喜歡將這些變量添加到數據框中,如下所示,因為它在概念上對我有意義。我也不必擔心全局變量的變化會對功能產生意想不到的后果。但所有其他答案也是正確的。所以,請使用適合您的方式。

require("ggplot2")xy <- data.frame(x = 1:10, y = 1:10)xy <- cbind(xy, YMul = 2)ggplot(xy, aes(x = x, y = y * YMul)) + geom_line()

或者,如果您想要示例中的函數:

plotfunc <- function(Data, YMul = 2){
    ggplot(cbind(Data, YMul), aes(x = x, y = y * YMul)) + geom_line()}plotfunc(xy)


查看完整回答
反對 回復 2019-08-28
  • 3 回答
  • 0 關注
  • 547 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號