我想运行一个查看两个向量的函数,根据两个向量中值的符号返回不同的值.我编写了一个函数来比较两个值,但后来我想在两个向量上运行它.所以我使用了sapply,但是我得到的结果与预期不同.
bear.correction<- function(x,y){
if(x > 0 && y < 0){
return(90)
}else if(x < 0 && y < 0){
return(180)
}else if(x < 0 && y > 0){
return(270)
}else return(0)
}
Run Code Online (Sandbox Code Playgroud)
以下给出了预期的(和期望的)结果:
bear.correction(1,-1)
bear.correction(1,1)
bear.correction(-1,1)
bear.correction(-1,-1)
Run Code Online (Sandbox Code Playgroud)
结果:90,0,270,180
然而,当我尝试进行相同的比较,但使用带有sapply的向量时,我得到了不同的结果:
x <- c(1,1,-1,-1)
y <- c(-1,1,1,-1)
sapply(x,bear.correction,y)
Run Code Online (Sandbox Code Playgroud)
结果:90,90,180,180.
我看不出有什么不对,所以请帮忙!
我想将一个R生成的数字输出到Word.该图包含透明度(alpha通道).下面是一些示例代码 - 当导出到Windows图元文件时,它会抛出一个错误:
警告消息:在plot.xy(xy,type,...)中:此设备不支持半透明:每页仅报告一次
导出到SVG会产生所需的结果,但MS Office不支持此图像格式.有没有解决的办法?保留Alpha通道时我可以使用哪种图像类型?PNG是可能的,但这不会产生非常清晰的图形 - 它会丢失清晰的矢量化图像.
# Get some colours with transparency (alpha = 0.6)
col.dot <- rainbow(5, alpha = .6)
# Save to svg file - OK
svg("test_fig.svg")
plot(1:5,col = col.dot, pch=15)
dev.off()
# Save to wmf - warning "semi-transparency is not supported on this device..."
win.metafile("test_fig.wmf")
plot(1:5,col = col.dot, pch=15)
dev.off()
Run Code Online (Sandbox Code Playgroud)
我应该补充一下,这是在Windows系统上(Windows 8 64位,使用Word 2013)