我有一个相等行和列的数据帧/矩阵.我想只提取上三角或下三角.
x<-data.frame(matrix(1:25,nrow=5))
colnames(x)<-LETTERS[1:5]
rownames(x)<-LETTERS[1:5]
x[upper.tri(x,diag=F)]
Run Code Online (Sandbox Code Playgroud)
从这个结果来看,不可能说出值来自列和行的组合.所以,我想在结果中有行和列属性.像这样的东西:
Col Row Val
B A 6
C A 11
C B 12
...
Run Code Online (Sandbox Code Playgroud)
我需要为一个大的相关矩阵做这个.谢谢.
这里我有两个字符串向量,其顺序很重要,无法更改.
vec1 <- c("carrot","carrot","carrot","apple","apple","mango","mango","cherry","cherry")
vec2 <- c("cherry","apple")
Run Code Online (Sandbox Code Playgroud)
我想知道vec2中的元素是否出现在vec1中,如果是,则在哪里(索引/位置)以及以什么顺序出现.
我试过which(vec1 %in% vec2)了4 5 8 9.这些是正确的索引,但顺序错误.我试过match(vec2,vec1)了8 4.仅返回第一个匹配项.如果vec1是唯一的,这将有效.
理想情况下,我正在寻找这个结果:8 9 4 5.樱桃首先在8号和9号匹配,然后苹果在4号和5号匹配.
有没有一种聪明的方法来做到这一点,而不诉诸循环?
无论实际尺寸如何,如何将图例高度或宽度设置为绘图高度/宽度的 100%?
\nlibrary(ggplot2)\nggplot(iris, aes(Petal.Width, Sepal.Width, color=Petal.Length))+\n geom_point()+\n theme(\n legend.title=element_blank(),\n legend.position="bottom",\n legend.key.width=unit(0.1,"npc"))\nRun Code Online (Sandbox Code Playgroud)\n
由reprex 包于 2022 年 2 月 11 日创建(v2.0.1)
\n\n\n会话信息\n\nsessioninfo::session_info()\n#> \xe2\x94\x80 Session info \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n#> setting value\n#> version R version 4.1.0 (2021-05-18)\n#> os Ubuntu 20.04.3 LTS\n#> \xe2\x94\x80 Packages \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n#> ggplot2 * 3.3.5 2021-06-25 [1] CRAN (R 4.1.0)\n#> \n#> \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\nRun Code Online (Sandbox Code Playgroud)\n\n 这是 Shinyapps.io 设置的屏幕截图。有人可以解释一下这些东西是什么以及它们之间的关系吗?在设置区域和闪亮的服务器管理指南中有一个有限的单行定义,它没有解释太多。
如何使用变量更改主题?
library(ggplot2)
ggplot(iris,aes(Sepal.Length,Petal.Width))+
geom_point()
Run Code Online (Sandbox Code Playgroud)
我可以
ggplot(iris,aes(Sepal.Length,Petal.Width))+
geom_point()+
theme_bw()
Run Code Online (Sandbox Code Playgroud)
相反,如果我的主题是在变量中定义的,
var1 <- "theme_bw"
var2 <- "theme_grey"
Run Code Online (Sandbox Code Playgroud)
我可以用它来设置主题吗?
是否可以对导出的 ggplot 图进行精细的抗锯齿处理?我已经尝试过这个Cairo包以及一些不同的设备,但它们似乎都有锯齿状的边缘。
library(ggplot2)
library(Cairo)
p <- ggplot(data.frame(x=1:5,y=1:5),aes(x=x,y=y))+
geom_text(aes(2.5,2.5),label="Brown Fox bla bla..",size=5)+
labs(x=NULL,y=NULL)+
theme_bw()+
theme(plot.background=element_blank(),
plot.margin = margin(c(0,0,0,0)),
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.line = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())
png("test-nocairo.png",height=2,width=6,units="cm",res=300)
print(p)
dev.off()
png("test-cairo.png",height=2,width=6,units="cm",res=300,type="cairo")
print(p)
dev.off()
tiff("test-cairo.tiff",height=2,width=6,units="cm",res=300,type="cairo")
print(p)
dev.off()
ggsave("test-ggsave.png",height=2,width=6,units="cm",dpi=300,type="cairo")
Run Code Online (Sandbox Code Playgroud)
出于我的目的,重要的是图像是 300dpi 的 PNG 或 TIFF(无损)。我知道我可以导出为矢量格式(SVG、PDF 等),然后使用另一个程序转换为 PNG/TIFF,但这显然是额外的工作。我很好奇 R 中是否有任何我忽略的解决方案。
作为参考,以上是photoshop的渲染质量。PNG Arial 14pt。
当使用highcharter交互式图表,我怎么可以指定一组数据点必须突出在一起吗?
library(highcharter)
library(dplyr)
library(tidyr)
dfr <- data.frame(sample=c("A","B","C","D"),part=c(2,3,4,6),cat=c(5,7,3,3))
dfr1 <- dfr %>% tidyr::gather(key=metric,value=value,-sample)
dfr1
sample metric value
1 A part 2
2 B part 3
3 C part 4
4 D part 6
5 A cat 5
6 B cat 7
7 C cat 3
8 D cat 3
dfr1 %>%
hchart(.,"scatter",hcaes(x=metric,y=value,group=factor(sample))) %>%
hc_xAxis(type="category",title=list(text="Metrics"),crosshair=TRUE) %>%
hc_yAxis(type="linear",title=list(text="Counts"),crosshair=TRUE) %>%
hc_chart(zoomType="xy",inverted=T) %>%
hc_tooltip(useHTML=TRUE,formatter = JS("function(){
return('<b>Sample: </b>'+this.point.sample+'</br>')}"))
Run Code Online (Sandbox Code Playgroud)
在这个例子中,当我将鼠标悬停在蓝点(样本 A)上时,我希望所有其他蓝点(样本 A)也被突出显示。
我有一个简单的多边形。
dfr <- data.frame(x=c(2,2.5,4,5,4.5,3,2),y=c(2,3,3.5,3,2.8,2.5,2))
plot(dfr)
polygon(dfr)
Run Code Online (Sandbox Code Playgroud)
是否有任何 R 函数可以在所有方向上均匀地增加多边形的大小?
有人知道 Rmarkdown 的任何图片库包或者创建图库的好方法吗?我刚刚开始尝试一些普通代码,但还有很长的路要走。只是想在进入这个兔子洞之前向社区咨询一下我是否缺少一些已知或明显的解决方案。
下面是一个工作示例。
---
title: "Gallery"
output:
html_document:
theme: united
---
<br>
```{r,include=FALSE}
paths <- c(
"https://images.pexels.com/photos/7604423/pexels-photo-7604423.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
"https://images.pexels.com/photos/5483373/pexels-photo-5483373.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
"https://images.pexels.com/photos/4982737/pexels-photo-4982737.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
"https://images.pexels.com/photos/3773652/pexels-photo-3773652.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
)
len <- length(paths)
width <- paste0(100/len,"%")
```
```{r,echo=FALSE,fig.show="hold",out.width=width}
knitr::include_graphics(paths)
```
```{r,include=FALSE}
paths <- c(
"https://images.pexels.com/photos/3845111/pexels-photo-3845111.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260",
"https://images.pexels.com/photos/3933996/pexels-photo-3933996.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260",
"https://images.pexels.com/photos/1033729/pexels-photo-1033729.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
)
len <- length(paths)
width <- paste0(100/len,"%")
```
```{r,echo=FALSE,fig.show="hold",out.width=width}
knitr::include_graphics(paths)
```
Run Code Online (Sandbox Code Playgroud) 我正在 R 中使用plotly 创建 3D 散点图,我想减小所有点的标记大小。
library(plotly)
plot_ly(iris,x=~Petal.Width,y=~Sepal.Width,z=~Petal.Length) %>%
add_markers(color=~Species)
Run Code Online (Sandbox Code Playgroud)
我试图设定sizes论点,但这似乎并没有改变任何事情。
plot_ly(iris,x=~Petal.Width,y=~Sepal.Width,z=~Petal.Length) %>%
add_markers(color=~Species,sizes=0.02)
Run Code Online (Sandbox Code Playgroud)
还尝试了另一种说法sizeref。然而,什么也没发生。
plot_ly(iris,x=~Petal.Width,y=~Sepal.Width,z=~Petal.Length) %>%
add_markers(color=~Species,marker=list(sizeref=0.02))
Run Code Online (Sandbox Code Playgroud)
还有其他解决方案可以减小所有点的标记大小吗?或者我做错了什么?
r ×10
ggplot2 ×3
antialiasing ×1
attributes ×1
correlation ×1
plotly ×1
r-distill ×1
r-markdown ×1
r-plotly ×1
shiny ×1
shiny-server ×1