r语言 rgl 强制过程中_R语言中编写最小工作示例(MWRE)
原文链接:
R语言中编写最小工作示例(MWRE)tecdat.cn
获得R问题的良好帮助的关键是提供最低限度工作的可重复示例(MWRE)。使用R制作MWRE非常简单,它将有助于确保那些帮助您识别错误来源的人,并理想地提交给您,以修复错误,而不是向您发送有用的代码。要拥有MWRE,您需要以下项目:
- 产生错误的最小数据集
- 生成数据所需的最小可运行代码,在提供的数据集上运行
- 有关已使用的软件包,R版本和系统的必要信息
- 一个
seed
值,如果随机特性是代码的一部分
让我们看看R中可用的工具,以帮助我们快速,轻松地创建这些组件。
生成最小数据集
这里有三个不同的选项:
- 使用内置R数据集
- 从头开始创建一个新的vector / data.frame
- 以可共享的方式输出您当前正在处理的数据
让我们依次看看每一个,看看R帮助我们做的工具。
内置数据集
R数据集中有一些规范的buit非常适合在帮助请求中使用。
- mtcars
- 鸢尾花
要查看R中的所有可用数据集,只需键入:data()
。要加载任何这些数据集,只需使用以下内容:
data(mtcars)
head(mtcars) # to look at the datampg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
此选项适用于您知道在R中遇到命令时遇到问题的问题。如果您无法理解为什么您熟悉的命令无法处理数据,则此选项不是一个很好的选择。
data(stulevel)
names(stulevel)[1] "X" "school" "stuid" "grade" "schid" [6] "dist" "white" "black" "hisp" "indian"
[11] "asian" "econ" "female" "ell" "disab"
[16] "sch_fay" "dist_fay" "luck" "ability" "measerr"
[21] "teachq" "year" "attday" "schoolscore" "district"
[26] "schoolhigh" "schoolavg" "schoollow" "readSS" "mathSS"
[31] "proflvl" "race"
创建自己的数据
让我们创建一个学生考试成绩和人口统计学的模拟数据框架。
head(Data)id gender mathSS readSS race
1 1 female 396.6 349.2 H
2 2 male 369.5 330.7 W
3 3 female 423.3 354.3 B
4 4 male 348.7 333.1 W
5 5 male 299.7 353.4 H
6 6 female 338.0 422.1 I
我们模拟了学生数据。 让我们使用快速绘图来查看变量之间的关系:
qplot(mathSS, readSS, data = Data, color = race) + theme_bw()
它看起来像比赛是相当均匀的分布和存在之间没有任何关系mathSS
和readSS
。对于某些应用程序,此数据已足够,但对于其他应用程序,我们可能希望获得更实际的数据。
table(Data$race)A B H I W
192 195 202 203 208 cor(Data$mathSS, Data$readSS)[1] -0.01236
输出您当前的数据
这里的最佳实践是创建您正在处理的数据的子集,然后使用该dput
命令输出它。
dput(head(stulevel, 5))structure(list(X = c(44L, 53L, 116L, 244L, 274L), school = c(1L,
1L, 1L, 1L, 1L), stuid = c(149995L, 13495L, 106495L, 45205L,
142705L), grade = c(3L, 3L, 3L, 3L, 3L), schid = c(495L, 495L,
495L, 205L, 205L), dist = c(105L, 45L, 45L, 15L, 75L), white = c(0L,
0L, 0L, 0L, 0L), black = c(1L, 1L, 1L, 1L, 1L), hisp = c(0L,
0L, 0L, 0L, 0L), indian = c(0L, 0L, 0L, 0L, 0L), asian = c(0L,
0L, 0L, 0L, 0L), econ = c(0L, 1L, 1L, 1L, 1L), female = c(0L,
0L, 0L, 0L, 0L), ell = c(0L, 0L, 0L, 0L, 0L), disab = c(0L, 0L,
0L, 0L, 0L), sch_fay = c(0L, 0L, 0L, 0L, 0L), dist_fay = c(0L,
0L, 0L, 0L, 0L), luck = c(0L, 1L, 0L, 1L, 0L), ability = c(87.8540493076978,
97.7875614875502, 104.493033823157, 111.671512686787, 81.9253913501755
), measerr = c(11.1332639734731, 6.8223938284885, -7.85615858883968,
-17.5741522573204, 52.9833376218976), teachq = c(39.0902471213577,
0.0984819168655733, 39.5388526976972, 24.1161227728637, 56.6806130368238
), year = c(2000L, 2000L, 2000L, 2000L, 2000L), attday = c(180L,
180L, 160L, 168L, 156L), schoolscore = c(29.2242722609726, 55.9632592971956,
55.9632592971956, 55.9632592971956, 55.9632592971956), district = c(3L,
3L, 3L, 3L, 3L), schoolhigh = c(0L, 0L, 0L, 0L, 0L), schoolavg = c(1L,
1L, 1L, 1L, 1L), schoollow = c(0L, 0L, 0L, 0L, 0L), readSS = c(357.286464546893,
263.904581222636, 369.672179143784, 346.595665384202, 373.125445669888
), mathSS = c(387.280282915207, 302.572371332695, 365.461432571883,
344.496386434725, 441.15810279391), proflvl = structure(c(2L,
3L, 2L, 2L, 2L), .Label = c("advanced", "basic", "below basic",
"proficient"), class = "factor"), race = structure(c(2L, 2L,
2L, 2L, 2L), .Label = c("A", "B", "H", "I", "W"), class = "factor")), .Names = c("X",
"school", "stuid", "grade", "schid", "dist", "white", "black",
"hisp", "indian", "asian", "econ", "female", "ell", "disab",
"sch_fay", "dist_fay", "luck", "ability", "measerr", "teachq",
"year", "attday", "schoolscore", "district", "schoolhigh", "schoolavg",
"schoollow", "readSS", "mathSS", "proflvl", "race"), row.names = c(NA,
5L), class = "data.frame")
生成的代码可以复制并粘贴到R ,它将自动按照描述自动构建数据集。
匿名化您的数据
也可能是您想要dput
数据的情况,但您希望保持数据内容的匿名性。谷歌搜索提出了一个体面的功能,以实现这一目标:
anonym <- function(df) {if (length(df) > 26) {LETTERS <- c(LETTERS, paste(LETTERS, LETTERS, sep = ""))})}level.id.df <- function(df) {level.id <- function(i) {if (class(df[, i]) == "factor" | class(df[, i]) == "character") {sep = ".")} else if (is.numeric(df[, i])) {} else {column <- df[, i]}return(column)}DF <- data.frame(sapply(seq_along(df), level.id))return(DF)}df <- level.id.df(df)return(df)
}test <- anonym(stulevel)
head(test[, c(2:6, 28:32)])B C D
1 0.00217632592657076 1.51160611230132 0.551020408163265
2 0.00217632592657076 0.135998696526593 0.551020408163265
3 0.00217632592657076 1.07322572705443 0.551020408163265
4 0.00217632592657076 0.455562880806568 0.551020408163265
5 0.00217632592657076 1.43813960635994 0.551020408163265
6 0.00217632592657076 0.151115261535106 0.551020408163265
创建示例
一旦我们得到了最小的数据集,我们就需要在该数据集上重现我们的错误。
让我们看一个聚合数据的错误示例。
Data <- data.frame(id = seq(1, 1000), gender = sample(c("male", "female"), 1000, replace = TRUE), mathSS = rnorm(1000, mean = 400, sd = 60), readSS = rnorm(1000, mean = 370, sd = 58.3), race = sample(c("H", "B", "W", "I", "A"), 1000, replace = TRUE))myAgg <- Data[, list(meanM = mean(mathSS)), by = race]Error: unused argument(s) (by = race)head(myAgg)Error: object 'myAgg' not found
为什么我会收到错误? 如果您将上述代码发送给某人,他们可以快速评估错误,如果他们知道您正在尝试使用data.table包,请查看错误。
library(data.table)
Data <- data.frame(id = seq(1, 1000), gender = sample(c("male", "female"), 1000, replace = TRUE), mathSS = rnorm(1000, mean = 400, sd = 60), readSS = rnorm(1000, mean = 370, sd = 58.3), race = sample(c("H", "B", "W", "I", "A"), 1000, replace = TRUE))Data <- data.table(Data)
myAgg <- Data[, list(meanM = mean(mathSS)), by = race]
head(myAgg)race meanM
1: H 398.6
2: B 405.1
3: A 397.8
4: W 395.7
5: I 399.1
会话信息
但是,他们可能不知道这一点,所以我们需要提供最后一条信息。 要诊断错误,必须知道您正在运行的系统,工作区中加载了哪些软件包,以及您使用的R版本和给定软件包。
只需添加sessionInfo()
功能的输出 。这很容易复制和粘贴或包含在knitr
文档中。
sessionInfo()R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252 attached base packages:
[1] stats graphics grDevices utils datasets methods base other attached packages:
[1] data.table_1.8.8 eeptools_0.2 ggplot2_0.9.3.1 knitr_1.2 loaded via a namespace (and not attached):[1] colorspace_1.2-2 dichromat_2.0-0 digest_0.6.3 [4] evaluate_0.4.3 formatR_0.7 grid_2.15.2 [7] gtable_0.1.2 labeling_0.1 MASS_7.3-23
[10] munsell_0.4 plyr_1.8 proto_0.3-10
[13] RColorBrewer_1.0-5 reshape2_1.2.2 scales_0.2.3
[16] stringr_0.6.2 tools_2.15.2
非常感谢您阅读本文,有任何问题请在下面留言!
r语言 rgl 强制过程中_R语言中编写最小工作示例(MWRE)相关推荐
- 梯度 cv2.sobel_TensorFlow 2.0中连续策略梯度的最小工作示例
梯度 cv2.sobel At the root of all the sophisticated actor-critic algorithms that are designed and appl ...
- r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf
注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...
- 求一个张量的梯度_张量流中离散策略梯度的最小工作示例2 0
求一个张量的梯度 Training discrete actor networks with TensorFlow 2.0 is easy once you know how to do it, bu ...
- go语言 第三方包安装方法_R语言3.6.3 安装程序下载及破解方法
下载地址 百度网盘链接: https://pan.baidu.com/s/16smT3ceIjqaupn54AdgmgQ 提取码:7hap 解压密码:关注[菜瓜程序猿]微信公众号,回复[解压密码]获取 ...
- c语言地址强制转为指针,C语言:指针类型强制性转换
C语言:指针类型强制性转换 标签:C语言 指针 强制性转换 by 小威威 1.引入 我们知道,每个变量都有对应的地址,地址的距离即为地址之差.然而,地址类型不同,也就不能进行减法运算.假如,我现在要求 ...
- r语言 分类变量 虚拟变量_R语言中的变量
r语言 分类变量 虚拟变量 R语言| 变数 (R Language | Variables) In the previous tutorial, we have come across the bas ...
- r语言算巢式设计方差分析_R语言中的方差分析方法汇总
方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法.下面我总结一下R语言如何对常用的方差分析进行操作. 1. 方差分析的假定 上面这个思维导图,也可以看出,方差分析有三大假定:正态, ...
- R语言中导入java中_R语言直接调用Java代码
我们都知道Java语言长期处于霸主地位,在所有编程语言排行榜中,Java也是常年位居第一.在近几年也是爆炸式发展,几乎覆盖到了应用开发的所有领域.而R语言则在统计圈和数据可视化处于佼佼者,如果将Jav ...
- r语言t检验输出检验统计量_R语言中实现T检验及可视化
T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布.T检验是用t分布理论来推论差异发生的概率,从而比较两 ...
- R语言中的esttab命令_R语言︱基本函数、统计量、常用操作函数
先言:R语言常用界面操作 帮助:help(nnet) = ?nnet =??nnet 清除命令框中所有显示内容:Ctrl+L 清除R空间中内存变量:rm(list=ls()).gc() 获取或者设置当 ...
最新文章
- Python常见问题(1):来历与简介General Python FAQ
- 46.一个例子了解C++中异常处理
- iTerm2 保存日志
- mapper里面select id 后面一直红名_YTG晨晨改ID“进厂找班上了”,如此自嘲,心态还挺好...
- 丁丁打折网卷能用吗_微信群控还能用吗?现在什么群控还能使用吗?
- 堆排序时间复杂度_图解堆结构、堆排序及堆的应用
- Asp.Net SignalR - 简单聊天室实现
- 网络编程实战之在线电子词典
- html代码在线获取,在线客服系统html代码的获取与生成方式 - 快商通
- 实例讲解微信小程序倒计时功能
- 生日倒生日计时html代码,一款非常精美实用的生日倒计时代码
- AD7606(并行8080方式)的STM32F103ZET6配置
- 体验APP时的必答题—以扇贝单词为例
- 深信服python面试题_深信服软件测试面试经验
- python 公主连接_ss
- 三菱FX5U系列PLC模拟量使用方法及相关参数设置
- linux中什么是软件包组,Linux软件包组的选择
- ShareSDK⭐一、QQ登陆、获取QQ用户信息
- 怎么用电脑屏幕录制工具录制游戏
- CDMA数字移动通信系统的软切换技术(转)
热门文章
- Google搜索语法(常用篇)
- android如何保证多线程安全,保证线程安全的方式有哪几种?
- OPNsense用户手册-用户界面
- 开源HTML编辑器xhEditor用法详解
- ICC II 2 placement
- GPU运算能力对(2022.4.5更新)
- 解决java:找不到符号办法
- Python应用|绘制任意正态分布曲线
- python实现奇异值分解_奇异值分解原理及Python实例
- linux centos 环境下Device eth0 does not seem to be present,delaying initialization. 问题处理