簡體   English   中英

如何將參數輸入傳遞給R中的自定義函數?

[英]How to pass argument input to a self-defined function in R?

我做了一個自定義的plottest函數:

plottest<-function(dataframe, var1){

  ggplot(dataframe)+geom_point(aes(x=T, y=var1))

}

我希望我可以傳遞一個數據框和一個列名,這樣我就可以重復繪制不同的列。

df <- data.frame(T=(1:10), y1=(21:30), y2=(51:60), y3 = (61:70))

但當我這樣做時:

library(ggplot2)    
plottest(df, y1)

錯誤消息顯示:未找到對象'var1'。

我該怎么做才能做到這一點?

嘗試:

df <- data.frame(T=(1:10), y1=(21:30), y2=(51:60), y3 = (61:70))

plottest<-function(dataframe, var1){
  ggplot(dataframe, aes_string(x='T', y=var1))+geom_point()
}

plottest(df, 'y1')

將函數參數中的abcissa固定為默認參數會更加清晰。

在此輸入圖像描述

您可以使用簡單的添加行使原始函數工作(並且我添加了ylab()調用以防止繪圖始終使用“y”作為ylab。

plottest<-function(dataframe, var1){
    y <- substitute(var1)
   ggplot(dataframe)+geom_point(aes(x=T, y=y)) + ylab(y) 
 }
 library(ggplot2)    
 plottest(df, y1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM