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

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

如何制作一個很好的R可重復的例子

如何制作一個很好的R可重復的例子

BIG陽 2019-12-22 10:12:36
如何制作一個很好的R可重復的例子在與同事討論性能,教學,發送錯誤報告或在郵件列表上搜索指導時,以及在Stack Overflow上,通常會詢問可重復的示例并始終提供幫助。您有什么建議創建優秀示例的提示?如何以文本格式粘貼r中的數據結構?您還應該包含哪些其他信息?在另外還有其他招數來使用dput(),dump()或structure()?你什么時候應該包括library()或require()聲明?其中保留字應避免一個,此外c,df,data等?怎樣才能成為一位偉大的[R重復的例子?
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

(這是我對如何寫一個可重復的例子的建議。我試圖讓它變短但很甜)

如何編寫可重現的示例。

如果您提供可重現的示例,您最有可能獲得R問題的良好幫助。一個可重現的示例允許其他人通過復制和粘貼R代碼來重新創建您的問題。

為了使您的示例可重現,您需要包含四件事:所需的包,數據,代碼和R環境的描述。

  • 應該在腳本的頂部加載包,因此很容易看到示例需要哪些包。

  • 在電子郵件或Stack Overflow問題中包含數據的最簡單方法是使用dput()生成R代碼來重新創建它。例如,要mtcars在R中重新創建數據集,我將執行以下步驟:

    1. dput(mtcars)在R中運行

    2. 復制輸出

    3. 在我可重現的腳本中,鍵入mtcars <-然后粘貼。

  • 花一點時間確保您的代碼易于其他人閱讀:

    • 確保你已經使用了空格,你的變量名稱簡潔,但信息豐富

    • 使用注釋來指出問題所在

    • 盡力刪除與問題無關的所有內容。
      代碼越短,理解起來就越容易。

  • sessionInfo()在代碼中包含注釋的輸出。這總結了您的R環境,并且可以輕松檢查您是否使用了過時的軟件包。

你可以通過啟動一個新的R會話并粘貼你的腳本來檢查你是否真的做了一個可重現的例子。

在將所有代碼放入電子郵件之前,請考慮將其放在Gist github上。它將為您的代碼提供良好的語法突出顯示,您不必擔心電子郵件系統會破壞任何內容。



查看完整回答
反對 回復 2019-12-23
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

就個人而言,我更喜歡“一個”襯里。一些事情:

my.df <- data.frame(col1 = sample(c(1,2), 10, replace = TRUE),
        col2 = as.factor(sample(10)), col3 = letters[1:10],
        col4 = sample(c(TRUE, FALSE), 10, replace = TRUE))my.list <- list(list1 = my.df, list2 = my.df[3], list3 = letters)

數據結構應該模仿作者的問題而不是確切的逐字結構。當變量不覆蓋我自己的變量或上帝禁止,函數(如df)時,我真的很感激。

或者,可以剪切幾個角并指向預先存在的數據集,例如:

library(vegan)data(varespec)ord <- metaMDS(varespec)

不要忘記提及您可能正在使用的任何特殊包裝。

如果你想在更大的物體上展示一些東西,你可以試試

my.df2 <- data.frame(a = sample(10e6), b = sample(letters, 10e6, replace = TRUE))

如果您通過raster包處理空間數據,則可以生成一些隨機數據。在包裝插圖中可以找到很多例子,但這里有一個小金塊。

library(raster)r1 <- r2 <- r3 <- raster(nrow=10, ncol=10)values(r1) <- runif(ncell(r1))values(r2) <- runif(ncell(r2))values(r3) <- runif(ncell(r3))s <- stack(r1, r2, r3)

如果您需要實現的某些空間對象sp,則可以通過“空間”包中的外部文件(如ESRI shapefile)獲取一些數據集(請參閱任務視圖中的空間視圖)。

library(rgdal)ogrDrivers()dsn <- system.file("vectors", package = "rgdal")[1]ogrListLayers(dsn)ogrInfo(dsn=dsn, layer="cities")cities <- readOGR(dsn=dsn, layer="cities")



查看完整回答
反對 回復 2019-12-23
  • 3 回答
  • 0 關注
  • 751 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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