Tag: r

将数据框转换为vector(按行)

我有一个像这样的数字条目的数据框 test <- data.frame(x=c(26,21,20),y=c(34,29,28)) 我怎样才能得到以下vector? > 26,34,21,29,20,28 我能够用下面的方法得到它,但我想应该有一个更优雅的方式 X <- test[1,] for (i in 2:dim(test)[1]){ X <- cbind(X,test[i,]) }

如何强制列表对象键入“双”

代码: a <- structure(list(`X$Days` = c("10", "38", "66", "101", "129", "185", "283", "374")), .Names = "X$Days") 然后a就像 $`X$Days` [1] "10" "38" "66" "101" "129" "185" "283" "374" 我想强制a数值的数组,但强制函数返回我 Error: (list) object cannot be coerced to type 'double' 谢谢,

如何很好地注释ggplot2(手动)

使用ggplot2我通常使用geom_text和类似position=jitter东西来标注我的情节。 但是 – 对于一个好的情节,我经常发现值得手动注释。 如下所示: data2 <- structure(list(type = structure(c(5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L), .Label = c("EDS", "KIU", "LAK", "MVH", "NA*"), class = "factor"), value = c(0.9, 0.01, 0.01, 0.09, 0, 0.8, 0.05, 0, 0.15, 0, 0.41, 0.04, 0.03, 0.52, […]

我怎样才能抑制ggplot2阴谋的垂直网格线?

我正在构build一个条形图,其中横条(x)的位置足以表示条形,所以我想避免画出多余的垂直网格线。 我知道如何deviseopts()中的小网格线和主网格线,但是我不能在我的生活中弄清楚如何仅仅抑制垂直网格线。 library(ggplot2) data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4)) ggplot(data, aes(x, y)) + geom_bar(stat = 'identity') + opts( panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'), panel.grid.minor = theme_line(colour = NA), panel.background = theme_rect(colour = NA), axis.ticks = theme_segment(colour = NA) ) 在这一点上,它看起来像我将不得不压制所有的网格线,然后用geom_hline()把它们拉回来,这似乎是一种痛苦(也不完全清楚,我怎么能find蜱/主要网格线位置,以馈给geom_hline()。) 任何想法将不胜感激!

按星期,月份,季度和年份计算date之间的差异

我有两个date让我们说14.01.2013和26.03.2014。 我希望以星期(?),月(在例子14),季度(4)和年份(1)的方式来区分这两个date。 你知道这个最好的方法吗?

什么是最有效的方式来列表作为数据框?

我经常想要将每个索引具有相同元素types的列表转换为数据框。 例如,我可能有一个列表: > my.list [[1]] [[1]]$global_stdev_ppb [1] 24267673 [[1]]$range [1] 0.03114799 [[1]]$tok [1] "hello" [[1]]$global_freq_ppb [1] 211592.6 [[2]] [[2]]$global_stdev_ppb [1] 11561448 [[2]]$range [1] 0.08870838 [[2]]$tok [1] "world" [[2]]$global_freq_ppb [1] 1002043 我想将此列表转换为数据框,其中每个索引元素是一个列。 自然(对我)要去的是使用do.call : > my.matrix<-do.call("rbind", my.list) > my.matrix global_stdev_ppb range tok global_freq_ppb [1,] 24267673 0.03114799 "hello" 211592.6 [2,] 11561448 0.08870838 "world" 1002043 直截了当的,但是当我试图把这个matrix作为一个数据框架时,这些列仍然是列表元素,而不是vector: > my.df<-as.data.frame(my.matrix, […]

图例放置,ggplot,相对于绘图区域

这里的问题有点显而易见。 我想把这个图例置于(locking)在“绘图区域”的左上angular。 由于许多原因,使用c(0.1,0.13)等不是一种select。 有没有办法改变坐标的参考点,以便它们相对于绘图区域? mtcars$cyl <- factor(mtcars$cyl, labels=c("four","six","eight")) ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + geom_point(aes(colour=cyl)) + opts(legend.position = c(0, 1), title="Legend placement makes me sad") 干杯

具有交叉重复效应和AR1协方差结构的线性混合模型,

我有内部学科的生理数据( part ),他们都在三轮( round )上看了刺激(阅读报纸),每篇都有5篇论文( paper ),每个论文都有不同的访问次数) 在报纸上。 我有两个固定因子( CONDhier和CONDabund )加上相互作用来预测生理状态(如EDA ),这通常是自回归的。 我尝试考虑生理学随机效应的个体差异(让我们只为了现在的拦截而定下),也许还有另外一个随机效应的轮次疲劳。 因此,我想在R中运行的模型是SPSS中的: MIXED EDA BY CONDhier CONDabund /FIXED=CONDhier CONDabund CONDhier*CONDabund | SSTYPE(3) /RANDOM=INTERCEPT | SUBJECT(part) COVTYPE(VC) /RANDOM=INTERCEPT | SUBJECT(part*round) COVTYPE(VC) /PRINT=SOLUTION /METHOD=REML /REPEATED=visit | SUBJECT(part*round*paper) COVTYPE(AR1). 现在,我已经理解,虽然lme不能很好地交叉条件, lmer (处理交叉项没有问题)不能使用不同的协方差结构。 我可以运行简单的lme模型,比如 lme(EDA ~ factor(CONDhier) * factor(CONDabund), random= ~1 |part, na.action=na.exclude, data=phys2) 但更复杂的模型是超越我的。 我已经读过,在lme中的交叉项可以用随机的定义来完成 random=pdBlocked(list(pdCompSymm(~part), […]

R:为什么使用]比使用$更快?

我一直在研究一些需要我做大量列表子集的项目,而在分析代码的时候,我意识到对列表进行子集化的对象[[nameHere]]方法通常比对象$ nameHere方法快。 作为一个例子,如果我们用命名组件创build一个列表: a.long.list <- as.list(rep(1:1000)) names(a.long.list) <- paste0("something",1:1000) 为什么是这样: system.time ( for (i in 1:10000) { a.long.list[["something997"]] } ) user system elapsed 0.15 0.00 0.16 比这更快: system.time ( for (i in 1:10000) { a.long.list$something997 } ) user system elapsed 0.23 0.00 0.23 我的问题是,这种行为是否真的是普遍的,我应该尽可能地避免$子集,或者最有效的select取决于其他因素?

如何在电子邮件正文中发送R markdown报告?

更新:Brandon Bertelsen的回答: 布兰登的答案产生了以下输出。 它不会像Rstudio那样产生漂亮的表格或突出显示的代码,并且它会使用unicode在一些html文件上崩溃,所以我没有使用它来自动化我的电子邮件报告。 我目前的做法是用Rstudio编译html,用chrome打开html文档,然后将html文档复制并粘贴到gmail中。 这工作得很好,看到这个要点: https : //gist.github.com/nelsonauner/a68b5a808c232ce7817e 原来的问题: 有没有简单的方法来发送一个R markdown文档作为电子邮件的主体,这样的电子邮件的正文看起来类似于使用Rstudio的“编织HTML”的结果? 这里有一个使用knitr , rmarkdown和mailR的基本可重复的例子 example.Rmd — title: "Report for email" output: html_document: self_contained: no — “`{r} summary(cars) “` You can also embed plots, for example: “`{r, echo=FALSE} plot(cars) “` 我使用self_contained: no因为默认的base64编码不适用于mailR (Yihui在这个SOpost中推荐 ) knit_and_send.R # compile using rmarkdown library(rmarkdown) rmarkdown::render("example.Rmd") library(mailR) send.mail(from = "me@gmail.com", […]