小编rmf*_*rmf的帖子

用属性提取相关矩阵的一个三角形

我有一个相等行和列的数据帧/矩阵.我想只提取上三角或下三角.

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)

我需要为一个大的相关矩阵做这个.谢谢.

attributes r correlation

6
推荐指数
2
解决办法
2042
查看次数

R矢量与有序索引匹配

这里我有两个字符串向量,其顺序很重要,无法更改.

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号匹配.

有没有一种聪明的方法来做到这一点,而不诉诸循环?

r

6
推荐指数
1
解决办法
625
查看次数

将图例宽度设置为 100% 绘图宽度

无论实际尺寸如何,如何将图例高度或宽度设置为绘图高度/宽度的 100%?

\n
library(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"))\n
Run Code Online (Sandbox Code Playgroud)\n

\n

由reprex 包于 2022 年 2 月 11 日创建(v2.0.1)

\n\n\n会话信息\n\n
sessioninfo::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\n
Run Code Online (Sandbox Code Playgroud)\n\n

r ggplot2

6
推荐指数
2
解决办法
1721
查看次数

R Shinyapps 高级设置

在此处输入图片说明

这是 Shinyapps.io 设置的屏幕截图。有人可以解释一下这些东西是什么以及它们之间的关系吗?在设置区域和闪亮的服务器管理指南中有一个有限的单行定义,它没有解释太多。

  1. 首先,什么是实例、工作线程和进程?
  2. 三种不同的超时时间有什么区别:“实例空闲超时”、“连接超时”和“空闲超时”?
  3. 这与可用内核的数量有什么关系?我怎么知道有多少内核可用?
  4. 如果可用,我的应用程序是否使用多个内核?
  5. 我必须明确地对多核的使用进行编程还是闪亮的自动分配任务?

r shiny shiny-server

5
推荐指数
1
解决办法
1677
查看次数

通过变量设置 ggplot 主题

如何使用变量更改主题?

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)

我可以用它来设置主题吗?

r ggplot2

5
推荐指数
1
解决办法
518
查看次数

ggplot 导出的抗锯齿

是否可以对导出的 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)

png-nocairo PNG 没有开罗

png-开罗 PNG 开罗

蒂夫开罗 TIFF开罗

png-ggsave-开罗 PNG ggsave 开罗

出于我的目的,重要的是图像是 300dpi 的 PNG 或 TIFF(无损)。我知道我可以导出为矢量格式(SVG、PDF 等),然后使用另一个程序转换为 PNG/TIFF,但这显然是额外的工作。我很好奇 R 中是否有任何我忽略的解决方案。

照相馆

作为参考,以上是photoshop的渲染质量。PNG Arial 14pt。

r antialiasing ggplot2

5
推荐指数
1
解决办法
2332
查看次数

highcharter:突出显示组中的点

当使用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)也被突出显示。

r r-highcharter

5
推荐指数
1
解决办法
161
查看次数

R 缓冲区/放大多边形

我有一个简单的多边形。

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 函数可以在所有方向上均匀地增加多边形的大小?

在此输入图像描述

r

5
推荐指数
1
解决办法
3197
查看次数

Rmarkdown 图片库

有人知道 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 r-markdown r-distill

5
推荐指数
1
解决办法
851
查看次数

Rplotly:调整 3D 散点图上的绝对标记大小

我正在 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 plotly r-plotly

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