Tag: r

在ggplot2中的qqnorm和qqline

说有一个线性模型LM,我想要一个残差的qq图。 通常我会使用R基本graphics: qqnorm(residuals(LM), ylab="Residuals") qqline(residuals(LM)) 我可以弄清楚如何获得情节的qqnorm部分,但我似乎无法pipe理qqline: ggplot(LM, aes(sample=.resid)) + stat_qq() 我怀疑我错过了一些非常基本的东西,但似乎应该有一个简单的方法来做到这一点。 编辑:非常感谢下面的解决scheme。 我已经修改了代码(非常轻微地)从线性模型中提取信息,以使绘图像R基本graphics包中的便捷图一样工作。 ggQQ <- function(LM) # argument: a linear model { y <- quantile(LM$resid[!is.na(LM$resid)], c(0.25, 0.75)) x <- qnorm(c(0.25, 0.75)) slope <- diff(y)/diff(x) int <- y[1L] – slope * x[1L] p <- ggplot(LM, aes(sample=.resid)) + stat_qq(alpha = 0.5) + geom_abline(slope = slope, intercept = […]

使用tm_map(…,tolower)将文本转换为小写时出错

我尝试使用tm_map 。 它给了以下错误。 我怎样才能解决这个问题? require(tm) byword<-tm_map(byword, tolower) Error in UseMethod("tm_map", x) : no applicable method for 'tm_map' applied to an object of class "character"

在R中绘制多条线(数据序列),每条线都有独特的颜色

我是相当新的R和我有以下查询: 我试图在R中生成一个有多行(数据序列)的图。 每一行都是一个类别,我希望它具有独特的颜色。 目前我的代码是这样设置的: 首先,我正在创造一个空的情节: plot(1,type='n',xlim=c(1,10),ylim=c(0,max_y),xlab='ID', ylab='Frequency') 然后对于我的每个类别,我正在使用“for”循环来绘制这个空图中的行,如下所示: for (category in categories){ lines(data.frame.for.this.category, type='o', col=sample(rainbow(10)), lwd=2) } 这里有8个类别,所以在剧情中有8条线。 正如你所看到的,我试图从rainbows()函数中抽取一个颜色来为每一行生成一个颜色。 但是,当绘图生成时,我发现有多条线具有相同的颜色。 例如,这8条线中的3条线具有绿色。 我如何让这8条线中的每一条都具有独特的颜色? 另外,如何在情节的传说中体现这种独特性呢? 我试图查找legend()函数,但是不清楚应该使用哪个参数来反映每个类别的这种独特的颜色? 任何帮助或build议将不胜感激。

在R中拆分一个string向量

我有以下vector: tmp3 <- c("1500 2", "1500 1", "1510 2", "1510 1", "1520 2", "1520 1", "1530 2", "1530 1", "1540 2", "1540 1") 我想只保留在这个vector的每个primefaces中的第二个数字,所以它会读取: c(2,1,2,1,2,1,2,1,2,1)

R – 我需要用print()添加显式的新行字符吗?

我如何使用R中的新行字符? myStringVariable <- "Very Nice ! I like"; myStringVariabel <- paste(myStringVariable, "\n", sep=""); 上面的代码不起作用 PS当谷歌search这样的东西,因为查询“R新行字符”似乎混淆谷歌有重大挑战谷歌。 我真的希望R有一个不同的名字。

什么是阻止添加到当前的R保留字/符号集?

是否有对Rparsing器进行内部更改的历史先例,添加新的保留字或符号? 如果我没有记错data.table使用一个偶然的:=曾经被定义但留在R内部未使用,但我不知道其他人。 但是,随着语言的发展,定义新符号有时似乎很有用。 对于许多人来说,magrittr的pipe道%>%已经成为一个明显的例子,但它仍然是一个痛苦的types(当然,键盘技巧,但仍然)。 同样, dplyr/rlang为“整齐评估”( !! , !!! , := , ~等)引入/重新使用符号。 我看到的另一种情况是lambda函数的冗长。 在理论上,是否有可能在内部定义如f = λ(x) x+1而不是f = function(x) x+1 ,还是在其他原因的基础上还有字符限制?

使用R / Shiny创builddynamic数量的input元素

我正在写一个Shiny的应用程序,在我的公司可视化保险福利计划。 这是我想要发生的事情: 我将有一个selectInput或sliderInput ,用户将select他们的医疗计划中的个人数量 将出现匹配数量的双面滑块(每个成员一个) 然后,他们可以input他们对每个成员的最佳/最坏情况医疗费用的估计 我有代码,将采取这些估计和创build并行的情节说明三个计划产品的预测成本,所以他们可以决定哪一个是最便宜的根据他们的估计 这是我目前的ui.R文件,硬编码input,模拟一个四口之家: shinyUI(pageWithSidebar( headerPanel("Side by side comparison"), sidebarPanel( selectInput(inputId = "class", label = "Choose plan type:", list("Employee only" = "emp", "Employee and spouse" = "emp_spouse", "Employee and child" = "emp_child", "Employee and family" = "emp_fam")), sliderInput(inputId = "ind1", label = "Individual 1", min = 0, max = 20000, value […]

如何将徒手画的红色圆圈添加到ggplot2graphics中?

去年我发布了一个用户活动分析到元堆栈溢出 ,包括一系列ggplot2图。 然而, Wooble通过指出我的阴谋有一个致命的缺陷, 写意的红色圆圈在Meta Stack Overflow的任何情节中当然是必要的 ,但令我沮丧的是,我无法find将它们添加到ggplot2图表的方法。 我知道如何添加一个圈子 ,但是这样一个人造的构造没有个性,永远也不会通过元素。 作为一个可重复的例子,考虑一下随着时间的推移,我自己的回答活动,使用堆栈包创build的情节 : # devtools::install_github("dgrtwo/stackr") library(ggplot2) library(dplyr) library(lubridate) library(stackr) answers <- stack_users(712603, "answers", num_pages = 10, pagesize = 100) answers_per_month <- answers %>% mutate(month = round_date(creation_date, "month")) %>% count(month) ggplot(answers_per_month, aes(month, n)) + geom_line() 这个情节足够丰富,但没有灵魂 。 我怎样才能将写意的红色圆圈添加到它?

脚本中的ggplot图不会显示在Rstudio中

我对Rstudio有一个奇怪的问题:如果一个脚本调用ggplot2函数来显示一个图,那么使用Source来运行脚本不会产生图。 如果我用Ctrl+Aselect整个脚本,则运行当前行或select ( Ctrl+Enter ),然后显示graphics。 同样,在控制台中input绘图命令会产生正确的输出。 例如: library(ggplot2) p = ggplot(mtcars, aes(wt, mpg)) p + geom_point() 如果粘贴到控制台,只会产生输出,而不是源。 还有其他的问题,但是都没有帮助: ggplot2 ggsave函数会导致graphics设备不能显示重复的graphics,声称这个问题是在新版本中修复的,它没有。 RStudio – ggplot没有保存第一个打印和保存脚本中的多个图作为重复,但它不仅不是重复,但dev.off()解决方法不起作用(“ Error in dev.off() : cannot shut down device 1 (the null device) “) 当一个脚本来源时,如何让Rstudio显示graphics? 我正在使用Rstudio 0.98.1062和R 3.1.1。

避免string打印到控制台被截断(在RStudio中)

我想打印一个长的string到RStudio控制台,以便它不会被截断。 > paste(1:300, letters, collapse=" ") [1] "1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h 9 i … 181 y 182 z 183 a 184 b… <truncated> 我认为这应该是相当简单的,但我不知道如何。 我试过了 options(max.print = 10000) 并浏览print帮助页面上的参数。 仍然没有运气。 什么参数/设置,我必须改变,以实现这一目标?