2015-10-27 43 views
2

當寫長輸送管線用R和dplyr/tidyr,已經有人找到了一個很好的方式來添加註釋?最佳做法建議R管道%>%

我知道函數的語法已經非常有表現力,但有時候可能會將多個操作「分組」在一起,我想知道是否更好地在多個流水線中打破它們之間的註釋或者如果有方法以很好地格式化管道內的評論。

+2

愚蠢的是,只要線條用'%>%'結束,我們可以在下一個功能之前添加儘可能多的換行符和'#'... – xav

+9

這不是真正的主題對於SO,因爲它主要吸引dplyr集團的基於意見的答案。 –

回答

5

不是一個真正的答案,但太長了comment--

我個人只是把我的意見在命令之間的管道。例如:

object %>% 
    command1 %>% 

    #* Comment 

    command2 %>% 
    command3 %>% 

    #* Perhaps a 
    #* Really long 
    #* Comment 

    command4 

的關鍵,對我來說,是縮進到相同的水平,因爲它討論了,這樣我可以想像,這是一個單塊的一部分的代碼,您的評論。

+0

爲什麼使用#*而不是#? – Qbik

+1

沒有基於R的原因。我開始使用星號,因爲它對我正在使用的SAS程序員來說看起來更加熟悉。現在我和C#程序員一起工作,這是一個有用的慣例。這僅僅是一個字符,跳出來給那些程序員作爲一個更明顯的評論。 – Benjamin

4

或者:

object %>% 
    command1 %>% #* Comment 
    command2 %>% 
    command3 %>% #* Perhaps a 
       #* Really long 
       #* Comment 
    command4 

不過,說實話,我覺得這種做法一般是過多的評論,是類似於:

# increment x by 1 
x <- x + 1 

那是你應該假設任何人在讀你的代碼可以評估代碼,並且只能真正使用評論來獲取更大的想法。例如。

# In this section I calculate summaries and cummulative statistics of of X,Y,Z by factors A,B. 
# And then plot them. Note the plots exhibit ... 
object %>% 
    command1 %>% 
    command2 %>% 
    command3 %>% 
    command4 

ggplot(...) + geom_bar(...) + facet_grid(...) + theme(...) 

如果您確實需要做實質性評論,那麼您的代碼對於交互式使用可能過於複雜。你也許應該把它變成一個普遍化的功能和文檔功能