我有这个箱线图,我想重新排列列。我想要 MCAR、MAR、MNAR 而不是 MAR、MCAR、MNAR。传说也是错误的,橙色是ymiss,蓝色是yobs,但我无法改变它。你能帮助我吗?谢谢!
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | logistic <- function(x) exp(x) / (1 + exp(x)) set.seed(80122) n <- 300 dt <- MASS::mvrnorm(n = n, mu = c(0, 0), Sigma = matrix(c(1, 0.5, 0.5, 1), nrow = 2));dt r2.mcar <- 1 - rbinom(n, 1, 0.5);r2.mcar r2.mar <- 1 - rbinom(n, 1, logistic(dt[, 1]));r2.mar r2.mnar <- 1 - rbinom(n, 1, logistic(dt[, 2]));r2.mnar yobs1<-dt yobs1[r2.mcar==0,2]<-NA;yobs1 yobs2<-dt yobs2[r2.mar==0,2]<-NA;yobs2 yobs3<-dt yobs3[r2.mnar==0,2]<-NA;yobs3 dados<-matrix(cbind(yobs1[,1],yobs2[,1],yobs3[,1],yobs1[,2],yobs2[,2],yobs3[,2]),ncol=1) v<-c(rep("yobs",900),rep("ymiss",900)) m<-c(rep("MCAR",300),rep("MAR",300),rep("MNAR",300)) dados<-data.frame(v,m,dados) names(dados)<-c("y","mecanismo","valores") p <- ggplot(dados, aes(x =valores, y = mecanismo)) + geom_boxplot(aes(fill = y), position = position_dodge(0.9)) + scale_fill_manual(values = c("lightskyblue","lightsalmon")) p + facet_grid(~mecanismo) |

你的一个问题实际上是两个问题:
改变刻面的顺序。
将图例中的特定颜色分配给一个因素。在您的
这是代码和情节:
2 3 4 5 6 7 8 9 | dados$mecanismo <- factor(dados$mecanismo, levels=c('MCAR','MAR','MNAR')) p <- ggplot(dados, aes(x =valores, y = mecanismo)) + geom_boxplot(aes(fill = y), position = position_dodge(0.9)) + # set colors with named vector scale_fill_manual(values = c('yobs'="lightskyblue",'ymiss'="lightsalmon")) p + facet_grid(~mecanismo) |

编辑:更改图例键的顺序
经过一些评论,很明显 OP 不仅打算根据
2 3 4 5 6 7 8 9 10 | ggplot(dados, aes(x =valores, y = mecanismo)) + geom_boxplot(aes(fill = y), position = position_dodge(0.9)) + # set colors with named vector scale_fill_manual( values = c('yobs'="lightskyblue",'ymiss'="lightsalmon"), breaks = c('yobs', 'ymiss') ) |

添加此代码,它将起作用:
2 3 4 5 6 7 | dados$mecanismo <- factor(dados$mecanismo,levels = c("MCAR","MAR","MNAR"),ordered = T) p <- ggplot(dados, aes(x =valores, y = mecanismo)) + geom_boxplot(aes(fill = y), position = position_dodge(0.9)) + scale_fill_manual(values = c("lightsalmon","lightskyblue")) p + facet_grid(~mecanismo) |

鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA
我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案
我是ruby的新手,我正在尝试制作一个程序来自动格式化给定的字符串和数组。我试图弄清楚的一种自动格式化功能是一种用于数组的功能。假设我有一个如下例所示的数组myArray=["a","b","c"]我想把它变成一个列化的字符串,这样putsmyString就会给出`1)a``2)b``3)c`我该怎么做呢?我能找到的最接近的东西是使用.each这不是我想要的,我不能让每一行都有一个单独的条目。这一切都必须是一个带有换行符的字符串。任何帮助将不胜感激,提前致谢 最佳答案 您可以使用.map与.with_index:myArray=
我需要用任何语言编写一个算法,根据3个因素对数组进行排序。我以度假村为例(如Hipmunk)。假设我想去度假。我想要最便宜的地方、最好的评论和最多的景点。但是,显然我找不到在所有3个中都排名第一的方法。Example(assumingthereare20importantattractions):ResortA:$150/night...98/100infavorablereviews...18of20attractionsResortB:$99/night...85/100infavorablereviews...12of20attractionsResortC:$120/night
我正在尝试将$stdout设置为临时写入一个文件,然后返回到一个文件。test.rb:old_stdout=$stdout$stdout.reopen("mytestfile.out",'w+')puts"thisgoesinmytestfile"$stdout=old_stdoutputs"thisshouldbeontheconsole"$stdout.reopen("mytestfile1.out",'w+')puts"thisgoesinmytestfile1:"$stdout=old_stdoutputs"thisshouldbebackontheconsole"这是输出。r
我正在尝试按Rails相关模型中的字段进行排序。我研究的所有解决方案都没有解决如果相关模型被另一个参数过滤?元素模型classItem相关模型:classPriority我正在使用where子句检索项目:@items=Item.where('company_id=?andapproved=?',@company.id,true).all我需要按相关表格中的“位置”列进行排序。问题在于,在优先级模型中,一个项目可能会被多家公司列出。因此,这些职位取决于他们拥有的company_id。当我显示项目时,它是针对一个公司的,按公司内的职位排序。完成此任务的正确方法是什么?感谢您的帮助。PS-我
我有一个super简单的脚本,它几乎包含了FayeWebSocketGitHub页面上用于处理关闭连接的内容:ws=Faye::WebSocket::Client.new(url,nil,:headers=>headers)ws.on:opendo|event|p[:open]#sendpingcommand#sendtestcommand#ws.send({command:'test'}.to_json)endws.on:messagedo|event|#hereistheentrypointfordatacomingfromtheserver.pJSON.parse(event.d
我在我的rails应用程序中安装了来自github.com的acts_as_versioned插件,但有一段代码我不完全理解,我希望有人能帮我解决这个问题class_eval我知道block内的方法(或任何它是什么)被定义为类内的实例方法,但我在插件的任何地方都找不到定义为常量的CLASS_METHODS,而且我也不确定是什么here,并且有问题的代码从lib/acts_as_versioned.rb的第199行开始。如果有人愿意告诉我这里的内幕,我将不胜感激。谢谢-C 最佳答案 这是一个异端。http://en.wikipedia
我正在构建一个小部件来显示奥运会的奖牌数。我有一个“国家”对象的集合,其中每个对象都有一个“名称”属性,以及奖牌计数的“金”、“银”、“铜”。列表应该排序:1.首先是奖牌总数2.如果奖牌相同,按类型分割(金>银>铜,即2金>1金+1银)3.如果奖牌和类型相同,则按字母顺序子排序我正在用ruby做这件事,但我想语言并不重要。我确实找到了一个解决方案,但如果感觉必须有更优雅的方法来实现它。这是我做的:使用加权奖牌总数创建一个虚拟属性。因此,如果他们有2个金牌和1个银牌,加权总数将为“3.020100”。1金1银1铜为“3.010101”由于我们希望将奖牌数排序为最高的,因此列表按降序排