上篇 Spotfire ironpython示例小结 主要整理了关于Spotfire中关于如何使用Ironpython来拓展Spotfire使用范围,即通过脚本来控制分析及展示的过程
这篇文章主要整理下关于Spotfire中TERR脚本使用注意事项,TERR是一个集成在Spotfire中的一个R版本,代码的函数以及R包的用法大部分都跟Open R(常见的R版本)一样,唯一需要注意的是如何将其结果输出到Spotfire的一些文档属性或者可视化图形中
TERR的使用相比Ironpython简单不少,后者的难度主要在于需要熟悉Ironpython的Spotfire包对应的各个API的调用方式,而前者跟R基本类似,因此上手会相对容易点;因此以下给出两个例子,关于Spotfire中TERR的代码模板:
- 调用R版本
- 用TERR创建图片
- 用TERR输出统计结果或者计算值
Choose certain R version
这个在当电脑中有多个R版本的时候比较好用
pushPATH("C:\\Users\\anlan\\AppData\\Local\\R-3.6.1\\bin")
Create images by TERR in Spotfire
先加载RinR
包(必要的),然后通过RGraph
将绘图输出赋值为变量,RGraph
有几个参数:
packages
,将所用到的包都写入向量中data
,引入需要用到的数据集display
,在代码调试时是否要做展示library(RinR) lung <- input
graph <- RGraph({ fit <- survfit(Surv(time, status) ~ sex, data = lung) res.sum <- surv_summary(fit, data = lung) p <- ggsurvplot(fit, pval = TRUE, conf.int = TRUE, risk.table = TRUE, # Add risk table risk.table.col = "strata", # Change risk table color by groups linetype = "strata", # Change line type by groups surv.median.line = "hv", # Specify median survival ggtheme = theme_bw(), # Change ggplot2 theme palette = c("#E7B800", "#2E9FDF") ) print(p)
},packages = c("survminer","survival","ggplot2"),data = "lung",display=TRUE)
Spotfire images displayed in table cell
用法与上述类似,区别在于这种方法可以将图嵌入到表格的每个Cell中,展示形式的不同
library(RinR)
tempfilename <- tempfile()
col1 <- 1:10
col2 <- 11:20
graph <- RGraph({
png(file = tempfilename, bg = "transparent")
plot(col1, col2)
dev.off()
},data=list(col1=col1, col2=col2, tempfilename=tempfilename),display=FALSE)
# Read the resulting png into binaryValue
readHandle <- file(tempfilename,'rb')
binaryValue <- readBin(con=readHandle,what=raw(),n=1000000000)
close(readHandle)
unlink(tempfilename)
# Generate an output data table, with 1 row, 1 column, with a blob value.
x <- data.frame(col1=c(rep(NA,2)), col2=1:2)
x[[1]][1:2] <- list(binaryValue,binaryValue)
p <- "image/*"
names(p) <- "ContentType"
attr(x[[1]], "SpotfireColumnMetaData") <- as.list(p)
Output calculated value
这里并不是为了输出图片了,而是某个计算值,然后输出到Spotfire某个document property
version <- REvaluate({version$version.string}, REvaluator)
package <- REvaluate({
library(survminer)
paste(rownames(installed.packages()), collapse = ",")
}, REvaluator)
n_col <- REvaluate({
ncol(data)
}, REvaluator,data="data")
参考资料
https://gist.github.com/datalove/65619f5111712a2820c0
Creating a simple chart in R and show it in Spotfire
Calling RGraph to create an image file using the TERR RinR package
本文出自于http://www.bioinfo-scrounger.com转载请注明出处