首先,我必须承认我对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) 我有数据,我在计算护理事件(如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) 我正在使用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=不会像在其他基础绘图中那样增加线条粗细.
有人有任何线索吗?
我一直在尝试使用 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) 我正在尝试使用.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) 我正在尝试使用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)