小编Dan*_*Cee的帖子

R:无法安装rJava; 什么是r-api-3.4?

我在一台安装了R版本3.5.1的Ubuntu 18.04机器上,按照此链接安装.我试图安装CRAN包rJava,这是我做下面的方式(如看到这里):

sudo apt-get install r-cran-rjava
Run Code Online (Sandbox Code Playgroud)

但是,我明白了:

The following packages have unmet dependencies:
 r-cran-rjava : Depends: r-api-3.4
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

但是当我尝试:

sudo apt-get install r-api-3.4
Run Code Online (Sandbox Code Playgroud)

我明白了:

E: Package 'r-api-3.4' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

如何克服这个问题r-api-3.4?基本上,我需要安装rJava才能安装和使用XLConnect...在Ubuntu 16.04中,我没有任何问题......

编辑:

显然,r-api-3.4应该由提供r-base-core.我确实r-base-core安装了最新版本,为什么我仍然会看到错误呢?

java install r package rjava

13
推荐指数
1
解决办法
4162
查看次数

R:来自具有 2 个可能条件 (+/-) 的元素向量的所有可能组合

我有一个以markers以下形式命名的元素向量:

markers <- LETTERS[1:5]
Run Code Online (Sandbox Code Playgroud)

中的每个元素markers都是布尔类型,具有两种可能的条件+-。我想要一种快速有效的方法来获得所有可能的组合,以便考虑两个条件(即使条件不同,标记也不能与其自身配对)。

理想情况下,结果只是一个字符向量或列表,其中的元素是由 分隔的标记组合/

此示例中包含五个字母的元素应为:

A-/B-/C-/D-/E-
A-/B+/C-/D-/E-
A-/B-/C+/D-/E-
A-/B-/C-/D+/E-
A-/B-/C-/D-/E+
A-/B+/C+/D-/E-
A-/B+/C-/D+/E-
A-/B+/C-/D-/E+
A-/B+/C+/D+/E-
A-/B+/C+/D-/E+
A-/B+/C+/D+/E+
A+/B-/C-/D-/E-
A+/B+/C-/D-/E-
A+/B-/C+/D-/E-
A+/B-/C-/D+/E-
A+/B-/C-/D-/E+
A+/B+/C+/D-/E-
A+/B+/C-/D+/E-
A+/B+/C-/D-/E+
A+/B+/C+/D+/E-
A+/B+/C+/D-/E+
A+/B+/C+/D+/E+
...
Run Code Online (Sandbox Code Playgroud)

不知道如果我错过任意组合,但你的想法......我一直在试图与expand.gridcombn,但我似乎并没有得到它的权利。任何帮助表示赞赏!

谢谢!

combinations boolean r

7
推荐指数
1
解决办法
131
查看次数

R pheatmap:更改注释颜色并防止弹出图形窗口

回答这个问题之后,我发现了pheatmap函数(与heatmap.2相比,它可以为我提供更多的控制权)。

我有两个问题:

1-我无法更改注释(类别)的颜色

2-即使我将输出保存在png文件中,图形窗口也会不断弹出

这是我的MWE:

library(pheatmap)
library(RColorBrewer)
cols <- colorRampPalette(brewer.pal(9, "Set1"))

mymat <- matrix(rexp(600, rate=.1), ncol=12)
colnames(mymat) <- c(rep("treatment_1", 3), rep("treatment_2", 3), rep("treatment_3", 3), rep("treatment_4", 3))
rownames(mymat) <- paste("gene", 1:dim(mymat)[1], sep="_")

annotdf <- data.frame(row.names = paste("gene", 1:dim(mymat)[1], sep="_"), category = c(rep("CATEGORY_1", 10), rep("CATEGORY_2", 10), rep("CATEGORY_3", 10), rep("CATEGORY_4", 10), rep("CATEGORY_5", 10)))

mycolors <- cols(length(unique(annotdf$category)))
names(mycolors) <- unique(annotdf$category)
mycolors <- list(mycolors = mycolors)

pheatmap(mymat,
     color=greenred(75),
     scale="row",
     cluster_rows = FALSE,
     cluster_cols = FALSE,
     gaps_row=c(10,20,30,40),
     gaps_col=c(3,6,9),
     cellheight = 6,
     cellwidth …
Run Code Online (Sandbox Code Playgroud)

r colors heatmap pheatmap

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

ggplot2 boxplots - 如果没有重要的比较,如何避免额外的垂直空间?

在关于如何制作具有方面和显着性水平的箱形图的许多问题之后,特别是这个这个,我还有一个小问题.

我设法制作了如下所示的情节,这正是我想要的.

我现在面临的问题是,我很少或没有重要的比较; 在这些情况下,专用于显示显着性水平的括号的整个空间仍然保留,但我想摆脱它.

请使用iris数据集检查此MWE:

library(reshape2)
library(ggplot2)
data(iris)
iris$treatment <- rep(c("A","B"), length(iris$Species)/2)
mydf <- melt(iris, measure.vars=names(iris)[1:4])
mydf$treatment <- as.factor(mydf$treatment)
mydf$variable <- factor(mydf$variable, levels=sort(levels(mydf$variable)))
mydf$both <- factor(paste(mydf$treatment, mydf$variable), levels=(unique(paste(mydf$treatment, mydf$variable))))
a <- combn(levels(mydf$both), 2, simplify = FALSE)#this 6 times, for each lipid class
b <- levels(mydf$Species)
CNb <- relist(
    paste(unlist(a), rep(b, each=sum(lengths(a)))), 
    rep.int(a, length(b))
)
CNb
CNb2 <- data.frame(matrix(unlist(CNb), ncol=2, byrow=T))
CNb2
#new p.values
pv.df <- data.frame()
for (gr in unique(mydf$Species)){
    for (i in 1:length(a)){
        tis <- …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

R ggplot2 - 底部的图例被剪切,如何即时找到图例的最佳列数?

我想用底部的图例制作一个情节,但图例总是被剪掉......因为它似乎ggplot2无法自动确定底部图例中的最佳列数,我尝试自己做......没有成功。

假设我有以下mydf数据框:

mydf <- data.frame(group=paste0('gr',1:10), var=paste('some long text -', LETTERS), value=runif(260, 0, 100))
head(mydf)
#  group                var     value
#1   gr1 some long text - A  7.941256
#2   gr2 some long text - B 50.740651
#3   gr3 some long text - C 89.068872
#4   gr4 some long text - D 77.572413
#5   gr5 some long text - E  9.792349
#6   gr6 some long text - F 35.194944
Run Code Online (Sandbox Code Playgroud)

我希望我的输出图的宽度为 12(英寸)。

当我用 绘制图时ggplot2,图例的宽度大于图并被剪切:

width_scale <- 12
grDevices::pdf(file='test.pdf', …
Run Code Online (Sandbox Code Playgroud)

size r legend ggplot2

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

R:ggplot:错误:未知参数:binwidth,bin,pad

我想用ggplot2做一个非常简单的直方图.我有以下MWE:

library(ggplot2)
mydf <- data.frame(
                  Gene=c("APC","FAT4","XIRP2","TP53","CSMD3","BAI3","LRRK2","MACF1",
                  "TRIO","SETD2","AKAP9","CENPF","ERBB4","FBXW7","NF1","PDE4DIP",
                  "PTPRT","SPEN","ATM","FAT1","SDK1","SMG1","GLI3","HIF1A","ROS1",
                  "BRDT","CDH11","CNTRL","EP400","FN1","GNAS","LAMA1","PIK3CA",
                  "POLE","PRDM16","ROCK2","TRRAP","BRCA2","DCLK1","EVC2","LIFR",
                  "MAST4","NAV3"),
                  Freq=c(48,39,35,28,26,17,17,17,16,15,14,14,14,14,14,14,14,14,13,
                  13,13,13,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,
                  10,10,10))
mydf
ggplot(mydf, aes(x=Gene)) +
      geom_histogram(aes(y=Freq),
      stat="identity",
      binwidth=.5, alpha=.5,
      position="identity")
Run Code Online (Sandbox Code Playgroud)

我总是使用这个简单的代码来生成这种直方图.

事实上,我有一段时间前我做过的这个特例的情节......

在此输入图像描述

但是,现在我运行完全相同的代码,我收到以下错误:

错误:未知参数:binwidth,bin,pad

为什么我现在而不是之前发现此错误,这是什么意思?

非常感谢!

error-handling r histogram ggplot2

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

没有组名和 Arial 字体的 VennDiagram

我被要求用 Arial 字体在 R 中重做以下维恩图,但没有组名……看着VennDiagram 手册,我不明白我该怎么做……

这是我的 MWE:

#install.packages("VennDiagram")
library(VennDiagram)

a <- c(1,2,3,4,5,6)
b <- c(4,5,6,7,8,9,10,11,12)
c <- c(1,2,10,11,12,5,13,14,15,16)

venn.diagram(list("A" = a, "B" = b, "C" = c),
                 fill = c("red", "blue", "green"), alpha = c(0.5, 0.5, 0.5),
                 cat.cex = .75, cex = .75, lty =2, lwd =0.5, fontfamily ="serif",
                 filename = "test.tiff", imagetype = "tiff",
                 height = 3000, width = 3000, resolution = 1500, units = "px",
                 main="TITLE", main.pos=c(0.1,1.05), main.fontfamily="serif", main.cex=.75)
Run Code Online (Sandbox Code Playgroud)

测试图像

甚至可以删除组名 A、B 和 C,并将字体系列更改为 Arial,或者我应该考虑另一种方法而不是 R? …

fonts r venn-diagram

5
推荐指数
2
解决办法
2222
查看次数

R pheatmap:执行聚类并显示每个注释类别的树状图

我知道如何使用 pheatmap 按注释类别对行(基因)进行分组,并且我知道如何对整个行(基因)集执行 Person 的相关聚类,但我想要完成的是执行聚类(并显示独立的树状图)独立于每个类别。

这甚至可能吗?或者我是否被迫为每个类别创建单独的热图以在类别的基础上进行聚类?

在下面检查我的 MWE:

set.seed(1)
library(pheatmap)

mymat <- matrix(rexp(600, rate=.1), ncol=12)
colnames(mymat) <- c(rep("treatment_1", 3), rep("treatment_2", 3), rep("treatment_3", 3), rep("treatment_4", 3))
rownames(mymat) <- paste("gene", 1:dim(mymat)[1], sep="_")

annotdf <- data.frame(row.names = paste("gene", 1:dim(mymat)[1], sep="_"), category = c(rep("CATEGORY_1", 10), rep("CATEGORY_2", 10), rep("CATEGORY_3", 10), rep("CATEGORY_4", 10), rep("CATEGORY_5", 10)))

pheatmap(mymat,
     scale="row",
     cluster_rows = FALSE,
     cluster_cols = FALSE,
     gaps_row=c(10,20,30,40),
     gaps_col=c(3,6,9),
     cellheight = 6,
     cellwidth = 20,
     border_color=NA,
     fontsize_row = 6,
     filename = "TEST1.png",
     annotation_row = annotdf
)

pheatmap(mymat,
     scale="row",
     cluster_rows = …
Run Code Online (Sandbox Code Playgroud)

r cluster-analysis heatmap pheatmap

5
推荐指数
0
解决办法
3472
查看次数

R ggplot2:具有wilcoxon显着性水平和构面的箱线图。仅显示与星号的重大比较

为了完整起见,针对这个问题,我修改了可接受的答案并定制了结果图,但我仍然面临一些重要问题。

总而言之,我正在做箱形图,以反映Kruskal-Wallis和成对的Wilcoxon测试比较的重要性。

我想将P值数字替换为星号,并仅显示重要的比较,从而将垂直间距减小到最大值。

基本上,我想做这个,但面的补充问题,即混乱的一切行动。

到目前为止,我已经开发了一个非常不错的MWE,但是它仍然显示出问题...

library(reshape2)
library(ggplot2)
library(gridExtra)
library(tidyverse)
library(data.table)
library(ggsignif)
library(RColorBrewer)

data(iris)
iris$treatment <- rep(c("A","B"), length(iris$Species)/2)
mydf <- melt(iris, measure.vars=names(iris)[1:4])
mydf$treatment <- as.factor(mydf$treatment)
mydf$variable <- factor(mydf$variable, levels=sort(levels(mydf$variable)))
mydf$both <- factor(paste(mydf$treatment, mydf$variable), levels=(unique(paste(mydf$treatment, mydf$variable))))

# Change data to reduce number of statistically significant differences
set.seed(2)
mydf <- mydf %>% mutate(value=rnorm(nrow(mydf)))
##

##FIRST TEST BOTH

#Kruskal-Wallis
addkw <- as.data.frame(mydf %>% group_by(Species) %>%
                       summarize(p.value = kruskal.test(value ~ both)$p.value))
#addkw$p.adjust <- p.adjust(addkw$p.value, "BH")
a <- combn(levels(mydf$both), 2, simplify = …
Run Code Online (Sandbox Code Playgroud)

testing r facet ggplot2 boxplot

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

始终从向量中获取 n 个元素,如果向量长度 &lt;n,则再次循环向量

假设我有一组不同长度的向量。

我想始终获取其中的前 9 个元素。

但是,如果向量长度<9,我想获取所有元素,并从一开始就再次(一次又一次......必要时)完成最多 9 个向量。

例如:

v1=LETTERS[1:15]-> 我想抢"A" "B" "C" "D" "E" "F" "G" "H" "I"

v2=LETTERS[1:5]-> 我想抢"A" "B" "C" "D" "E" "A" "B" "C" "D"

v3=LETTERS[1:3]-> 我想抢"A" "B" "C" "A" "B" "C" "A" "B" "C"

... 等等。

有没有一种简单的方法可以做到这一点而无需遍历循环和异常?

element r vector

5
推荐指数
2
解决办法
120
查看次数