3 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
(這是我對(duì)如何寫一個(gè)可重復(fù)的例子的建議。我試圖讓它變短但很甜)
如何編寫可重現(xiàn)的示例。
如果您提供可重現(xiàn)的示例,您最有可能獲得R問(wèn)題的良好幫助。一個(gè)可重現(xiàn)的示例允許其他人通過(guò)復(fù)制和粘貼R代碼來(lái)重新創(chuàng)建您的問(wèn)題。
為了使您的示例可重現(xiàn),您需要包含四件事:所需的包,數(shù)據(jù),代碼和R環(huán)境的描述。
應(yīng)該在腳本的頂部加載包,因此很容易看到示例需要哪些包。
在電子郵件或Stack Overflow問(wèn)題中包含數(shù)據(jù)的最簡(jiǎn)單方法是使用
dput()
生成R代碼來(lái)重新創(chuàng)建它。例如,要mtcars
在R中重新創(chuàng)建數(shù)據(jù)集,我將執(zhí)行以下步驟:dput(mtcars)
在R中運(yùn)行復(fù)制輸出
在我可重現(xiàn)的腳本中,鍵入
mtcars <-
然后粘貼。花一點(diǎn)時(shí)間確保您的代碼易于其他人閱讀:
確保你已經(jīng)使用了空格,你的變量名稱簡(jiǎn)潔,但信息豐富
使用注釋來(lái)指出問(wèn)題所在
盡力刪除與問(wèn)題無(wú)關(guān)的所有內(nèi)容。
代碼越短,理解起來(lái)就越容易。sessionInfo()
在代碼中包含注釋的輸出。這總結(jié)了您的R環(huán)境,并且可以輕松檢查您是否使用了過(guò)時(shí)的軟件包。
你可以通過(guò)啟動(dòng)一個(gè)新的R會(huì)話并粘貼你的腳本來(lái)檢查你是否真的做了一個(gè)可重現(xiàn)的例子。
在將所有代碼放入電子郵件之前,請(qǐng)考慮將其放在Gist github上。它將為您的代碼提供良好的語(yǔ)法突出顯示,您不必?fù)?dān)心電子郵件系統(tǒng)會(huì)破壞任何內(nèi)容。

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
就個(gè)人而言,我更喜歡“一個(gè)”襯里。一些事情:
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)
數(shù)據(jù)結(jié)構(gòu)應(yīng)該模仿作者的問(wèn)題而不是確切的逐字結(jié)構(gòu)。當(dāng)變量不覆蓋我自己的變量或上帝禁止,函數(shù)(如df
)時(shí),我真的很感激。
或者,可以剪切幾個(gè)角并指向預(yù)先存在的數(shù)據(jù)集,例如:
library(vegan)data(varespec)ord <- metaMDS(varespec)
不要忘記提及您可能正在使用的任何特殊包裝。
如果你想在更大的物體上展示一些東西,你可以試試
my.df2 <- data.frame(a = sample(10e6), b = sample(letters, 10e6, replace = TRUE))
如果您通過(guò)raster
包處理空間數(shù)據(jù),則可以生成一些隨機(jī)數(shù)據(jù)。在包裝插圖中可以找到很多例子,但這里有一個(gè)小金塊。
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)
如果您需要實(shí)現(xiàn)的某些空間對(duì)象sp
,則可以通過(guò)“空間”包中的外部文件(如ESRI shapefile)獲取一些數(shù)據(jù)集(請(qǐng)參閱任務(wù)視圖中的空間視圖)。
library(rgdal)ogrDrivers()dsn <- system.file("vectors", package = "rgdal")[1]ogrListLayers(dsn)ogrInfo(dsn=dsn, layer="cities")cities <- readOGR(dsn=dsn, layer="cities")
- 3 回答
- 0 關(guān)注
- 747 瀏覽
添加回答
舉報(bào)