小编Chr*_*ris的帖子

使用带有knitr的循环来生成多个pdf报告...需要一些帮助才能让我超越驼峰

首先,我必须承认我对knitr和可重复分析的概念非常陌生,但我可以看到它在改进我当前工作流程方面的潜力(其中包括很多复制粘贴到word文档中).

我经常需要按组(本例中的医院)生成多个报告,并且在每个医院内,可能有许多不同的病房,我正在报告结果.以前我使用循环在R中运行我的所有绘图和分析,然后开始复制/粘贴工作; 但是,在阅读这篇文章后(Can Sweave会自动生成许多pdf文件?),它让我希望我实际上可以跳过很多步骤,直接从R通过Rnw/knitr报告.

然而,在尝试之后,我发现有一些东西不能完全解决(因为Rnw中的R环境似乎没有识别出我试图传递给它的循环变量?).

   ##  make my data
Hospital <- c(rep("A", 20), rep("B", 20))
Ward <- rep(c(rep("ICU", 10), rep("Medicine", 10)), 2)
Month <- rep(seq(1:10), 4)
Outcomes <- rnorm(40, 20, 5)
df <- data.frame(Hospital, Ward, Month, Outcomes)


##  Here is my current work flow-- produce all plots, but export as png and cut/paste
for(hosp in unique(df$Hospital)){
  subgroup <- df[ df$Hospital == hosp,]
  for(ward in unique(subgroup$Ward)){
    subgroup2 <- subgroup[subgroup$Ward == ward,]
    savename <- paste(hosp, ward)
    plot(subgroup2$Month, subgroup2$Outcomes, type="o", main=paste("Trend …
Run Code Online (Sandbox Code Playgroud)

r knitr

32
推荐指数
2
解决办法
9279
查看次数

每个主题每隔X天计算一次事件(在不规则的时间序列中)

我有数据,我在计算护理事件(如ER访问).诀窍是,我无法计算每次访问,因为有时第二次或第三次访问实际上是先前问题的后续行动.因此,我已经被指定通过使用30天的"清洁期"或"停电期"来计算访问次数,这样,我会按患者(最小日期)查找第一个事件(访问1),我计算该事件,然后应用规则,以便不计算在第一个事件发生后30天内发生的任何访问.在那30天窗口过后,我可以开始寻找第二次访问(访问2),计算一次,然后再次应用30天黑色(不计算在访问#2后30天内发生的任何访问). ..洗,冲洗,重复......

我把一个非常草率的解决方案整合在一起,需要大量的保姆和手动检查步骤(见下文).我必须相信有更好的方法.救命!

data1 <- structure(list(ID = structure(c(2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 
3L, 4L, 4L, 4L, 4L, 4L), .Label = c("", "patient1", "patient2", 
"patient3"), class = "factor"), Date = structure(c(14610, 14610, 
14627, 14680, 14652, 14660, 14725, 15085, 15086, 14642, 14669, 
14732, 14747, 14749), class = "Date"), test = c(1L, 1L, 1L, 2L, 
1L, 1L, 2L, 3L, 3L, 1L, 1L, 2L, 2L, 2L)), .Names = c("ID", "Date", 
"test"), class = "data.frame", row.names = c(NA, 14L))

library(doBy) 
##     create …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
201
查看次数

修改R中饼图中轮廓的宽度 - pie()的lwd参数等价于什么?

我正在使用baseR绘图函数来生成饼图,我想更改每个饼图段轮廓的线条粗细. ?pie似乎表明我可以添加可选的图形参数,但添加lwd=似乎不起作用.任何人都有任何关于我如何能够做到这一点的线索.我还不熟练制作饼图ggplot,并且希望坚持使用baseR绘图(如果可能的话).

library(RColorBrewer)

x1 <- data.frame(V1 = c(200, 100)) ##  generate data

row.names(x1) <- c("A", "B")

x1$pct <- round((x1$V1/sum(x1$V1))*100, 1)

lbls1 <- paste(row.names(x1), "-(",x1$pct, '%)', sep='') ## add some informative stuff

pie(x1$V1, labels=lbls1, col=tail(brewer.pal(3, 'PuBu'), n=2), 
           main=paste('My 3.1415'), cex=1.1, lwd= 3) 
Run Code Online (Sandbox Code Playgroud)

注意lwd=不会像在其他基础绘图中那样增加线条粗细.

有人有任何线索吗?

r

4
推荐指数
2
解决办法
2477
查看次数

从 R 到 Excel 的列格式化(使用 package=xlsx),当您提前不知道列索引时(有没有更好的方法)?

我一直在尝试使用 xlsx 包作为从 R 导出输出的一种方式,当您不知道(事先)哪些列将以哪种方式格式化时,我在设置列数据格式时遇到了问题。

顺便说一句,我发现这篇关于 tradeblotter 的最精彩的帖子对我达到这一点有很大帮助。我强烈推荐它:来自 Tradeblotter 博客的背景文章

在我的用例中,我每月生成报告,每个月要导出的 data.frame 将增加 1 列或更多列(然后需要正确格式化)。我不想手动进入并在代码中设置列名,而是希望 R 为我计算列数,然后将索引向量提供给 xlsx 代码。

在研究了 colStyle 列表对象的结构后,我能够创建此解决方法,但我必须相信有更好的方法,我正在寻找一些帮助来找到它。

提前致谢!克里斯

require(xlsx)
iris$cost <- rbinom(nrow(iris), 3, .85)+1000
iris$cost2 <- rbinom(nrow(iris), 3, .85)+1000
test <- createWorkbook()
# Define some cell styles within that workbook
csSheetTitle <- CellStyle(test) + Font(test, heightInPoints=18, isBold=TRUE)
csdollar <- CellStyle(test, dataFormat=DataFormat("$###,##0.00")) # ... for ratio results
csdefault <- CellStyle(test, dataFormat=DataFormat("0.00")) # ... for ratio results
csTableColNames <- CellStyle(test) + Font(test, isBold=TRUE) + Alignment(wrapText=TRUE, h="ALIGN_CENTER") …
Run Code Online (Sandbox Code Playgroud)

excel r xlsx

4
推荐指数
1
解决办法
6456
查看次数

将多个图表和数据面板导出到*.png(在样式布局()中可以在R中工作)

我正在尝试使用.png设备或.pdf设备导出多个数据面板和1个绘图作为单个图像,我没有取得任何成功.我可以使用R本机绘图设备在R中生成我想要的图像,但是当我尝试直接生成相同的图像时,我得到的结果是我没想到的.

这是我的示例代码

testMat <- matrix(1:20, ncol = 5)##  create data
testMatDF <- as.data.frame(testMat)
names(testMatDF) <- c("Hey there", "Column 2", 
         "Some * Symbols", "And ^ More", 
         "Final Column")
rownames(testMatDF) <- paste("Group", 1:4)

library(gplots) ##  gplots needed for textplot()
layout(matrix(c(1, 1, 2, 3, 3, 3),  2, 3, byrow = TRUE))
curve(dnorm, -3, 4)
textplot(testMat)
textplot(testMatDF)
##  produces what I want within R

layout(matrix(c(1, 1, 2, 3, 3, 3),  2, 3, byrow = TRUE))
png(file='plot1.png')
curve(dnorm, -3, 4)
textplot(testMat)
textplot(testMatDF)
dev.off()
##  only …
Run Code Online (Sandbox Code Playgroud)

plot r

3
推荐指数
1
解决办法
7213
查看次数

使用url使用read.xls导入Excel文件

我正在尝试使用gdata中的read.xls将Excel文件直接导入R.我在运行64位R的Windows机器上运行.

我已经检查了perl的PATH变量,我似乎已正确设置,所以这似乎不是问题.这是我的代码,我在下面附上了我的错误.有没有人对如何完成这项工作有任何指示?

require(RCurl)
require(gdata)
url <- "https://dl.dropboxusercontent.com/u/27644144/NADAC%2020140101.xls"
test <- read.xls(url)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Error in xls2sep(xls, sheet, verbose = verbose, ..., method = method,  : 
Intermediate file 'C:\Users\Me\AppData\Local\Temp\RtmpeoJNxP\file338c26156d7.csv' missing!
In addition: Warning message:
running command '"C:\STRAWB~1\perl\bin\perl.exe" "C:/Users/Me/Documents/R/win-library/3.0/gdata/perl/xls2csv.pl"  "https://dl.dropboxusercontent.com/u/27644144/NADAC%2020140101.xls" "C:\Users\Me\AppData\Local\Temp\RtmpeoJNxP\file338c26156d7.csv" "1"' had status 22 
Error in file.exists(tfn) : invalid 'file' argument
Run Code Online (Sandbox Code Playgroud)

r gdata

1
推荐指数
2
解决办法
5349
查看次数

标签 统计

r ×6

excel ×1

gdata ×1

knitr ×1

plot ×1

xlsx ×1