最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

R語言中編寫最小工作示例(MWRE)

2020-12-02 16:36 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=6716

?

獲得R問題的良好幫助的關(guān)鍵是提供最低限度工作的可重復(fù)示例(MWRE)。使用R制作MWRE非常簡單,它將有助于確保那些幫助您識別錯誤來源的人,并理想地提交給您,以修復(fù)錯誤,而不是向您發(fā)送有用的代碼。要擁有MWRE,您需要以下項目:

  • 產(chǎn)生錯誤的最小數(shù)據(jù)集

  • 生成數(shù)據(jù)所需的最小可運(yùn)行代碼,在提供的數(shù)據(jù)集上運(yùn)行

  • 有關(guān)已使用的軟件包,R版本和系統(tǒng)的必要信息

  • 一個seed值,如果隨機(jī)特性是代碼的一部分

讓我們看看R中可用的工具,以幫助我們快速,輕松地創(chuàng)建這些組件。

生成最小數(shù)據(jù)集

這里有三個不同的選項:

  1. 使用內(nèi)置R數(shù)據(jù)集

  2. 從頭開始創(chuàng)建一個新的vector / data.frame

  3. 以可共享的方式輸出您當(dāng)前正在處理的數(shù)據(jù)

讓我們依次看看每一個,看看R幫助我們做的工具。

內(nèi)置數(shù)據(jù)集

R數(shù)據(jù)集中有一些規(guī)范的buit非常適合在幫助請求中使用。

  • mtcars

  • ?鳶尾花

要查看R中的所有可用數(shù)據(jù)集,只需鍵入:data()。要加載任何這些數(shù)據(jù)集,只需使用以下內(nèi)容:

  1. data(mtcars)

  2. head(mtcars) ?# to look at the data

  1. mpg cyl disp ?hp drat ? ?wt ?qsec vs am gear carb

  2. Mazda RX4 ? ? ? ? 21.0 ? 6 ?160 110 3.90 2.620 16.46 ?0 ?1 ? ?4 ? ?4

  3. Mazda RX4 Wag ? ? 21.0 ? 6 ?160 110 3.90 2.875 17.02 ?0 ?1 ? ?4 ? ?4

  4. Datsun 710 ? ? ? ?22.8 ? 4 ?108 ?93 3.85 2.320 18.61 ?1 ?1 ? ?4 ? ?1

  5. Hornet 4 Drive ? ?21.4 ? 6 ?258 110 3.08 3.215 19.44 ?1 ?0 ? ?3 ? ?1

  6. Hornet Sportabout 18.7 ? 8 ?360 175 3.15 3.440 17.02 ?0 ?0 ? ?3 ? ?2

  7. Valiant ? ? ? ? ? 18.1 ? 6 ?225 105 2.76 3.460 20.22 ?1 ?0 ? ?3 ? ?1

此選項適用于您知道在R中遇到命令時遇到問題的問題。如果您無法理解為什么您熟悉的命令無法處理數(shù)據(jù),則此選項不是一個很好的選擇。

?

  1. data(stulevel)

  2. names(stulevel)


  1. [1] "X" ? ? ? ? ? "school" ? ? ?"stuid" ? ? ? "grade" ? ? ? "schid"

  2. [6] "dist" ? ? ? ?"white" ? ? ? "black" ? ? ? "hisp" ? ? ? ?"indian"

  3. [11] "asian" ? ? ? "econ" ? ? ? ?"female" ? ? ?"ell" ? ? ? ? "disab"

  4. [16] "sch_fay" ? ? "dist_fay" ? ?"luck" ? ? ? ?"ability" ? ? "measerr"

  5. [21] "teachq" ? ? ?"year" ? ? ? ?"attday" ? ? ?"schoolscore" "district"

  6. [26] "schoolhigh" ?"schoolavg" ? "schoollow" ? "readSS" ? ? ?"mathSS"

  7. [31] "proflvl" ? ? "race"

創(chuàng)建自己的數(shù)據(jù)

?讓我們創(chuàng)建一個學(xué)生考試成績和人口統(tǒng)計學(xué)的模擬數(shù)據(jù)框架。


  1. head(Data)


  1. id gender mathSS readSS race

  2. 1 ?1 female ?396.6 ?349.2 ? ?H

  3. 2 ?2 ? male ?369.5 ?330.7 ? ?W

  4. 3 ?3 female ?423.3 ?354.3 ? ?B

  5. 4 ?4 ? male ?348.7 ?333.1 ? ?W

  6. 5 ?5 ? male ?299.7 ?353.4 ? ?H

  7. 6 ?6 female ?338.0 ?422.1 ? ?I

?我們模擬了學(xué)生數(shù)據(jù)。 讓我們使用快速繪圖來查看變量之間的關(guān)系:

  1. qplot(mathSS, readSS, data = Data, color = race) + theme_bw()


它看起來像比賽是相當(dāng)均勻的分布和存在之間沒有任何關(guān)系mathSSreadSS。對于某些應(yīng)用程序,此數(shù)據(jù)已足夠,但對于其他應(yīng)用程序,我們可能希望獲得更實際的數(shù)據(jù)。

table(Data$race)


  1. A ? B ? H ? I ? W

  2. 192 195 202 203 208

cor(Data$mathSS, Data$readSS)[1] -0.01236

輸出您當(dāng)前的數(shù)據(jù)

?這里的最佳實踐是創(chuàng)建您正在處理的數(shù)據(jù)的子集,然后使用該dput命令輸出它。

dput(head(stulevel, 5))

  1. structure(list(X = c(44L, 53L, 116L, 244L, 274L), school = c(1L,

  2. 1L, 1L, 1L, 1L), stuid = c(149995L, 13495L, 106495L, 45205L,

  3. 142705L), grade = c(3L, 3L, 3L, 3L, 3L), schid = c(495L, 495L,

  4. 495L, 205L, 205L), dist = c(105L, 45L, 45L, 15L, 75L), white = c(0L,

  5. 0L, 0L, 0L, 0L), black = c(1L, 1L, 1L, 1L, 1L), hisp = c(0L,

  6. 0L, 0L, 0L, 0L), indian = c(0L, 0L, 0L, 0L, 0L), asian = c(0L,

  7. 0L, 0L, 0L, 0L), econ = c(0L, 1L, 1L, 1L, 1L), female = c(0L,

  8. 0L, 0L, 0L, 0L), ell = c(0L, 0L, 0L, 0L, 0L), disab = c(0L, 0L,

  9. 0L, 0L, 0L), sch_fay = c(0L, 0L, 0L, 0L, 0L), dist_fay = c(0L,

  10. 0L, 0L, 0L, 0L), luck = c(0L, 1L, 0L, 1L, 0L), ability = c(87.8540493076978,

  11. 97.7875614875502, 104.493033823157, 111.671512686787, 81.9253913501755

  12. ), measerr = c(11.1332639734731, 6.8223938284885, -7.85615858883968,

  13. -17.5741522573204, 52.9833376218976), teachq = c(39.0902471213577,

  14. 0.0984819168655733, 39.5388526976972, 24.1161227728637, 56.6806130368238

  15. ), year = c(2000L, 2000L, 2000L, 2000L, 2000L), attday = c(180L,

  16. 180L, 160L, 168L, 156L), schoolscore = c(29.2242722609726, 55.9632592971956,

  17. 55.9632592971956, 55.9632592971956, 55.9632592971956), district = c(3L,

  18. 3L, 3L, 3L, 3L), schoolhigh = c(0L, 0L, 0L, 0L, 0L), schoolavg = c(1L,

  19. 1L, 1L, 1L, 1L), schoollow = c(0L, 0L, 0L, 0L, 0L), readSS = c(357.286464546893,

  20. 263.904581222636, 369.672179143784, 346.595665384202, 373.125445669888

  21. ), mathSS = c(387.280282915207, 302.572371332695, 365.461432571883,

  22. 344.496386434725, 441.15810279391), proflvl = structure(c(2L,

  23. 3L, 2L, 2L, 2L), .Label = c("advanced", "basic", "below basic",

  24. "proficient"), class = "factor"), race = structure(c(2L, 2L,

  25. 2L, 2L, 2L), .Label = c("A", "B", "H", "I", "W"), class = "factor")), .Names = c("X",

  26. "school", "stuid", "grade", "schid", "dist", "white", "black",

  27. "hisp", "indian", "asian", "econ", "female", "ell", "disab",

  28. "sch_fay", "dist_fay", "luck", "ability", "measerr", "teachq",

  29. "year", "attday", "schoolscore", "district", "schoolhigh", "schoolavg",

  30. "schoollow", "readSS", "mathSS", "proflvl", "race"), row.names = c(NA,

  31. 5L), class = "data.frame")

生成的代碼可以復(fù)制并粘貼到R ,它將自動按照描述自動構(gòu)建數(shù)據(jù)集。?

?

匿名化您的數(shù)據(jù)

也可能是您想要dput數(shù)據(jù)的情況,但您希望保持?jǐn)?shù)據(jù)內(nèi)容的匿名性。谷歌搜索提出了一個體面的功能,以實現(xiàn)這一目標(biāo):

  1. anonym <- function(df) {

  2. if (length(df) > 26) {

  3. LETTERS <- c(LETTERS, paste(LETTERS, LETTERS, sep = ""))

  4. })

  5. }


  6. level.id.df <- function(df) {

  7. level.id <- function(i) {

  8. if (class(df[, i]) == "factor" | class(df[, i]) == "character") {

  9. sep = ".")

  10. } else if (is.numeric(df[, i])) {

  11. } else {

  12. column <- df[, i]

  13. }

  14. return(column)

  15. }

  16. DF <- data.frame(sapply(seq_along(df), level.id))

  17. return(DF)

  18. }

  19. df <- level.id.df(df)

  20. return(df)

  21. }


  22. test <- anonym(stulevel)

  23. head(test[, c(2:6, 28:32)])

  1. B ? ? ? ? ? ? ? ? C ? ? ? ? ? ? ? ? D

  2. 1 0.00217632592657076 ?1.51160611230132 0.551020408163265

  3. 2 0.00217632592657076 0.135998696526593 0.551020408163265

  4. 3 0.00217632592657076 ?1.07322572705443 0.551020408163265

  5. 4 0.00217632592657076 0.455562880806568 0.551020408163265

  6. 5 0.00217632592657076 ?1.43813960635994 0.551020408163265

  7. 6 0.00217632592657076 0.151115261535106 0.551020408163265

?

創(chuàng)建示例

一旦我們得到了最小的數(shù)據(jù)集,我們就需要在該數(shù)據(jù)集上重現(xiàn)我們的錯誤。?

讓我們看一個聚合數(shù)據(jù)的錯誤示例。?

  1. Data <- data.frame(id = seq(1, 1000), gender = sample(c("male", "female"), 1000,

  2. replace = TRUE), mathSS = rnorm(1000, mean = 400, sd = 60), readSS = rnorm(1000,

  3. mean = 370, sd = 58.3), race = sample(c("H", "B", "W", "I", "A"), 1000,

  4. replace = TRUE))


  5. myAgg <- Data[, list(meanM = mean(mathSS)), by = race]

Error: unused argument(s) (by = race)head(myAgg)Error: object 'myAgg' not found

為什么我會收到錯誤? 如果您將上述代碼發(fā)送給某人,他們可以快速評估錯誤,如果他們知道您正在嘗試使用data.table包,請查看錯誤。

  1. library(data.table)

  2. Data <- data.frame(id = seq(1, 1000), gender = sample(c("male", "female"), 1000,

  3. replace = TRUE), mathSS = rnorm(1000, mean = 400, sd = 60), readSS = rnorm(1000,

  4. mean = 370, sd = 58.3), race = sample(c("H", "B", "W", "I", "A"), 1000,

  5. replace = TRUE))


  6. Data <- data.table(Data)

  7. myAgg <- Data[, list(meanM = mean(mathSS)), by = race]

  8. head(myAgg)

  1. race meanM

  2. 1: ? ?H 398.6

  3. 2: ? ?B 405.1

  4. 3: ? ?A 397.8

  5. 4: ? ?W 395.7

  6. 5: ? ?I 399.1

會話信息

但是,他們可能不知道這一點(diǎn),所以我們需要提供最后一條信息。 要診斷錯誤,必須知道您正在運(yùn)行的系統(tǒng),工作區(qū)中加載了哪些軟件包,以及您使用的R版本和給定軟件包。

?只需添加sessionInfo()功能的輸出?。這很容易復(fù)制和粘貼或包含在knitr文檔中。

sessionInfo()

  1. R version 2.15.2 (2012-10-26)

  2. Platform: x86_64-w64-mingw32/x64 (64-bit)


  3. locale:

  4. [1] LC_COLLATE=English_United States.1252

  5. [2] LC_CTYPE=English_United States.1252

  6. [3] LC_MONETARY=English_United States.1252

  7. [4] LC_NUMERIC=C

  8. [5] LC_TIME=English_United States.1252


  9. attached base packages:

  10. [1] stats ? ? graphics ?grDevices utils ? ? datasets ?methods ? base


  11. other attached packages:

  12. [1] data.table_1.8.8 eeptools_0.2 ? ? ggplot2_0.9.3.1 ?knitr_1.2


  13. loaded via a namespace (and not attached):

  14. [1] colorspace_1.2-2 ? dichromat_2.0-0 ? ?digest_0.6.3

  15. [4] evaluate_0.4.3 ? ? formatR_0.7 ? ? ? ?grid_2.15.2

  16. [7] gtable_0.1.2 ? ? ? labeling_0.1 ? ? ? MASS_7.3-23

  17. [10] munsell_0.4 ? ? ? ?plyr_1.8 ? ? ? ? ? proto_0.3-10

  18. [13] RColorBrewer_1.0-5 reshape2_1.2.2 ? ? scales_0.2.3

  19. [16] stringr_0.6.2 ? ? ?tools_2.15.2

?

?

非常感謝您閱讀本文,有任何問題請在下面留言!


R語言中編寫最小工作示例(MWRE)的評論 (共 條)

分享到微博請遵守國家法律
崇礼县| 灵川县| 扶绥县| 旬阳县| 凌云县| 五华县| 扬州市| 陆川县| 华蓥市| 云龙县| 剑川县| 开江县| 西贡区| 怀远县| 云浮市| 晴隆县| 黄山市| 潜山县| 南通市| 美姑县| 临武县| 西和县| 岚皋县| 花垣县| 比如县| 石狮市| 铁力市| 西乌珠穆沁旗| 柞水县| 开原市| 保山市| 乐清市| 锡林浩特市| 家居| 乌鲁木齐县| 西峡县| 遵义县| 青州市| 蒲江县| 抚远县| 新闻|