小编Kei*_*son的帖子

如何定义散点图的固定宽高比

我正在绘制两个群体中每个个体测量的两个同位素的相关系数(值= 0.0:1.0).我希望我的散点图具有固定的宽高比,这样无论图形设备如何,x轴和y轴的大小都完全相同.建议?

这是我在R中的第一个情节,对我的代码的改进的任何评论都表示赞赏?最后,是否值得投资学习基本的绘图技术,还是应该直接跳到ggplot2或格子?

我的情节剧本:

## Create dataset
WW_corr <-
structure(list(South_N15 = c(0.7976495, 0.1796725, 0.5338347,
0.4103769, 0.7447027, 0.5080296, 0.7566544, 0.7432026, 0.8927161
), South_C13 = c(0.76706752, 0.02320767, 0.88429902, 0.36648357,
0.73840937, 0.0523504, 0.52145159, 0.50707858, 0.51874445), North_N15 = c(0.7483608,
0.4294148, 0.9283554, 0.8831571, 0.5056481, 0.1945943, 0.8492716,
0.5759033, 0.7483608), North_C13 = c(0.08114805, 0.47268136,
0.94975596, 0.06023815, 0.33652839, 0.53055943, 0.30228833, 0.8864435,
0.08114805)), .Names = c("South_N15", "South_C13", "North_N15",
"North_C13"), row.names = c(NA, -9L), class = "data.frame")

opar <- par()

## Plot results
par(oma = c(1, 0, 0, 0), mar …
Run Code Online (Sandbox Code Playgroud)

r scatter-plot aspect-ratio

40
推荐指数
2
解决办法
4万
查看次数

如何在R中剪切带有多边形的WorldMap?

我使用R包栅格从www.GADM.org导入了世界地图数据集.我想将其剪切为我创建的多边形以减小地图的大小.我可以检索数据,我可以创建多边形没有问题,但当我使用'gIntersection'命令时,我得到一个模糊的错误消息.

有关如何剪辑我的世界地图数据集的任何建议?

library(raster)
library(rgeos)

## Download Map of the World ##
WorldMap <- getData('countries')

## Create the clipping polygon
clip.extent <- as(extent(-20, 40, 30, 72), "SpatialPolygons")
proj4string(clip.extent) <- CRS(proj4string(WorldMap))

## Clip the map
EuropeMap <- gIntersection(WorldMap, clip.extent, byid = TRUE)
Run Code Online (Sandbox Code Playgroud)

错误信息:

Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : 
  Geometry collections may not contain other geometry collections
In addition: Warning message:
In RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") :
  spgeom1 and spgeom2 have different proj4 strings
Run Code Online (Sandbox Code Playgroud)

gis r crop polygon clip

9
推荐指数
1
解决办法
3469
查看次数

绘制符号在PDF中失败

我有以下代码来创建一个plot.在x- 并且y-axes有一些symbols出现在屏幕上,JPEG当我以该格式保存我的情节时,但不是当我将情节保存为PDF.

是否有我的替代符号\u2030将打印在我的PDF或我的问题的另一个解决方案?请参阅下面的示例(JPEG格式)和错误(PDF)图表.

plot(c(-1,1), c(-1,1), bty = "n", type= "n", las = 1, cex.lab = 1.5, cex.axis = 1.25, main = NULL, 
ylab=expression(paste("Correlation Coefficient (r) for ", delta ^{15},"N"," \u0028","\u2030","\u0029")), 
xlab=expression(paste("Correlation Coefficient (r) for ", delta ^{13},"C"," \u0028","\u2030","\u0029")))
axis(1, at = seq(-1.0, 1.0, by = 0.1), labels = F, pos = 0, cex.axis = 0.05, tcl = 0.25)
axis(2, at = seq(-1.0, 1.0, by = 0.1), …
Run Code Online (Sandbox Code Playgroud)

pdf plot symbols r

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

从列表中的所有数据框中删除具有NAs的列

我有一个由几个数据框组成的列表.我想在每个数据框中删除所有具有NA的列.请注意,要删除的列在每个数据框中都不相同.以下提供的示例数据.任何建议非常感谢.

WW1_Data <- structure(list(Alnön = structure(list(Site_Name = structure(1L, .Label =
c("Alnön","Ammarnäs", "Anjan", "Bäcksand", "Fittjebodarna", "Flatruet",
"Glen", "Idre", "Klångstavallen", "Kramfors", "Ljungdalen", "Ljungris",
"Mårdsund", "Mörtsjön", "Nordmaling", "Öster_Galåbodarna", "Ramundberget",
"Rätan", "Särvfjället", "Smedstorp", "Söderhamn", "Stensoffa",
"Storulvån", "Sveg", "Tanna", "Tänndalen", "Vålådalen", "Vemdalsskalet"
), class = "factor"), X1996 = 0.307692307692308, X1997 = NA_real_,
X2000 = 0.260869565217391, X2001 = NA_real_, X2002 = NA_real_,
X2003 = NA_real_, X2008 = NA_real_, X2009 = NA_real_, X2010 = 0.0833333333333333,
X2011 = NA_real_), .Names = c("Site_Name", "X1996", "X1997",
"X2000", "X2001", "X2002", "X2003", …
Run Code Online (Sandbox Code Playgroud)

r dataframe na

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

如何在R中的表中创建缺失值?

我有40对鸟,每对男性和女性在一对得分的颜色.颜色分数是一个分类变量,其值范围为1到9.我想创建一个表格,其中包含每个组合的数量(1/1,1/2,1/3,...,9/7,9/8,9/9).我的问题是,当我尝试创建表时,我的数据中存在一些组合(在这些情况下,我希望零值为缺失值).以下是数据和示例代码.我很确定答案在于使用'expand.grid()'命令,例如看到这篇文章,但我不确定如何实现它.有什么建议?

## Dataset pairs of males and females and their colour classes
Pair_Colours <- structure(list(Male = c(7, 6, 4, 6, 8, 8, 5, 6, 6, 8, 6, 6, 5, 
7, 9, 5, 8, 7, 5, 5, 4, 6, 7, 7, 3, 6, 5, 4, 7, 4, 3, 9, 4, 4, 
4, 4, 9, 6, 6, 6), Female = c(9, 8, 8, 9, 3, 6, 8, 5, 8, 9, 7, 
3, 6, 5, 8, 9, 7, 3, 6, 4, …
Run Code Online (Sandbox Code Playgroud)

r frequency missing-data

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

如何编辑300 GB文本文件(基因组数据)?

我有一个300 GB的文本文件,其中包含超过250k记录的基因组数据.有些记录包含不良数据,我们的基因组程序'Popoolution'允许我们用星号注释掉"坏"记录.我们的问题是我们找不到将加载数据的文本编辑器,以便我们可以注释掉不良记录.有什么建议?我们有Windows和Linux盒子.

更新:更多信息

Popoolution程序(https://code.google.com/p/popoolation/)在达到"错误"记录时崩溃,向我们提供我们可以注释掉的行号.具体来说,我们从Perl收到一条消息,上面写着"F#€%&Scaffolding".手册建议我们可以使用星号来注释坏线.可悲的是,我们必须多次重复这个过程......

还有一个想法......是否有一种方法可以让我们在不打开整个文本文件的情况下将星号添加到行中.鉴于我们必须重复该过程未知次数,这可能非常有用.

linux text r edit genetics

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

计算摘要统计信息,然后将所有结果合并到单个data.frame中

我正在努力学习简化我的代码并将多个data.frames(> 2)同时合并到一个数据集中.首先,我想计算的"地盘" mean,sd以及n(在每个站点数"个人"的)的四个PCA列(Morph_PC1,Morph_PC2,...).其次,将结果合并为单个data.frame.下面是我尝试此任务的示例数据和代码.

我意识到可能有一种方法可以生成一个不需要合并的单个数据集,这很好,但我也想知道如何使merge_all命令从包reshape中运行.

样本数据:

WW_Data <- structure(list(Individual_ID = c("WW_00A_05", "WW_00A_03", "WW_00A_02", 
"WW_00A_01", "WW_00A_04", "WW_00A_06", "WW_00A_08", "WW_00A_09", 
"WW_00A_07", "WW_00A_10", "WW_09AB_14", "WW_09AB_09", "WW_09AB_13", 
"WW_10AD_01", "WW_10AD_09", "WW_10AD_04", "WW_10AD_02", "WW_10AD_03", 
"WW_10AD_07", "WW_10AD_08"), Site_Name = c("Alnön", "Alnön", 
"Alnön", "Alnön", "Alnön", "Alnön", "Alnön", "Alnön", "Alnön", 
"Alnön", "Anjan", "Anjan", "Anjan", "Anjan", "Anjan", "Anjan", 
"Anjan", "Anjan", "Anjan", "Anjan"), Morph_PC1 = c(-2.08424433316496, 
-1.85413711191957, -1.67227075271696, -1.0486265729884, -0.809415702756541, 
-2.81781338129716, -2.08471369525797, -0.183840575363918, -0.753930407169699, 
0.0719252507535882, 1.02353521593315, 1.34441686821234, …
Run Code Online (Sandbox Code Playgroud)

merge r reshape

4
推荐指数
2
解决办法
2622
查看次数

如何为lmer模型结果绘制标准误差的预测值?

我有四个位置和四个底物的移植实验(取自每个位置).我确定了每个位置和基质组合中每个群体的存活率.该实验重复三次.

我创建了一个lmm如下:

Survival.model <- lmer(Survival ~ Location + Substrate + Location:Substrate + (1|Replicate), data=Transplant.Survival,, REML = TRUE)
Run Code Online (Sandbox Code Playgroud)

我想使用predict命令来提取预测,例如:

Survival.pred <- predict(Survival.model)
Run Code Online (Sandbox Code Playgroud)

然后提取标准误差,以便我可以使用预测绘制它们,以生成如下图:

在此输入图像描述

我知道如何使用标准glm(这是我创建示例图的方式),但我不确定我是否能够或应该用lmm做到这一点.

我可以这样做,还是我作为线性混合模型的新用户缺​​少一些基本的东西?

我确实在Stack Overflow上找到了这篇文章,但没有用.

根据RHertel的评论,也许我应该提出这样的问题:如何绘制我的模型结果的模型估计和置信区间,以便我可以得到与上面创建的模型类似的情节?

样本数据:

Transplant.Survival <- structure(list(Location = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), …
Run Code Online (Sandbox Code Playgroud)

r lme4 mixed-models

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

如何针对具有多个组的数据集对每个组执行PCA?

我有一个来自四个人群,四个治疗和三个重复的个体数据集.每个人只有一个人群,治疗和复制组合.我从每个人那里做了四次测量.我想针对每个群体,底物和重复组合对这些测量进行PCA.

我知道如何对所有个体进行PCA,我可以将数据集分成多个数据集,用于每个群体,底物和复制的组合,然后在每个新数据集上执行PCA.

如何在完整的数据集上进行PCA,获得单独的PC1,PC2 ...每种组合的种群,底物和最高效的复制结果?我考虑过将数据集转换为列表,但不确定如何将princomp函数应用于列表.我是在正确的轨道上吗?

样本数据:

TestData<- structure(list(Location = c("A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
                                   "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
                                   "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
                                   "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D"),
              Substrate = c("A", "B", "C", "D", "A", "B", "C", "D", "A", "B", "C", "D",
                            "A", "B", "C", "D", "A", "B", "C", "D", "A", "B", …
Run Code Online (Sandbox Code Playgroud)

r pca princomp

3
推荐指数
1
解决办法
4106
查看次数

轴为中心的散点图看起来像"十字准线"

我想为包含正值和负值的数据集创建一个散点图.我对plot()非常熟悉,但我找不到将轴移动到绘图中心的任何选项,即零.我希望情节看起来像"十字准线".

我知道如何在plot()中关闭轴,即xaxt ="N",我理解如何使用轴().没有选项或示例我可以找到在绘图中间将轴置于零的中心.使用abline()创建线条和刻度标记似乎是不必要的.

你能指点一下我可以用plot()实现这个目标的命令,技巧或包吗?

plot r scatter-plot

2
推荐指数
1
解决办法
2978
查看次数

如何根据R中的不同变量在图中使用多个符号?

我已经创建了一个PCA,用于从放置在四个基板上的四个位置上收集的个体进行测量,重复三次.我有性别(男性或女性)和"核型"(三个可能类别的因素)和计算每个人的前两个PC分数.

我想制作一个情节,其中男性和女性有不同的符号,符号的颜色取决于karotype.我用下面的代码创建了一个图,它为我提供了一个符号颜色编码的三个核型,并在男性和女性周围放置了95%的置信度.

如何更改每个性别的符号并保持颜色依赖于karytype?我也想在传说中反映这一点.

最后一个问题.是否可以为每个PC(而不是每个人)添加一个箭头,类似于在排序图中找到的箭头?

实验中所有个体的PC1 x PC2图

样本数据:

test <- structure(list(Location = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("Kampinge", "Kaseberga", "Molle", "Steninge"
), class = "factor"), Substrate = structure(c(1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L), .Label = c("Kampinge", "Kaseberga", "Molle", 
"Steninge"), class = "factor"), …
Run Code Online (Sandbox Code Playgroud)

plot r pca

0
推荐指数
1
解决办法
2466
查看次数

如何根据条件替换多列中的值?

我想换掉所有的值99NA对所有记录ART == '999'只在列L1:L8.我知道如何一次一列地执行此操作,但我希望在一个命令中为所有列更有效地执行此操作.

样本数据:

df <- structure(list(KARTA = c("02C2H", "02C2H", "02C2H", "02C2H", 
"02C2H", "02C2H", "02C2H", "02C2H", "02C2H", "02C2H", "02C2H", 
"02C2H", "02C2H", "02C7H", "02C7H", "02C7H", "02C7H", "02C7H", 
"02C7H", "02C7H", "02C7H", "02C7H", "02C7H", "02C7H", "02C7H"
), YEAR = c(1997L, 1999L, 2000L, 2001L, 2002L, 2003L, 2005L, 
2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 1997L, 1998L, 2000L, 
2001L, 2002L, 2003L, 2004L, 2006L, 2008L, 2009L, 2010L, 2011L
), ART = c("999", "999", "100", "100", "100", "999", "999", "999", …
Run Code Online (Sandbox Code Playgroud)

replace r criteria find

-1
推荐指数
1
解决办法
2649
查看次数