小编She*_*ila的帖子

在R中使用ggplot2覆盖两个图

我有两张图,我试图将一个叠加在另一个上面:

数据框"ge"的示例如下所示.实际上有10个Genes,每个200个样本,所以有2000行和3列:

Exp    Gene    Sample
903.0   1       1
1060.0  1       2
786.0   1       3
736.0   1       4
649.0   2       1
657.0   2       2
733.5   2       3
774.0   2       4
Run Code Online (Sandbox Code Playgroud)

数据框"avg"的示例如下所示.这是所有样品中每个基因的数据点的平均值.实际上这个图有10个基因,所以矩阵是4col X 10行:

mean       Gene   sd         se
684.2034    1   102.7142    7.191435
723.2892    2   100.6102    7.044122
Run Code Online (Sandbox Code Playgroud)

第一张图描绘了每个基因的平均表达线以及每个数据点的标准偏差.

avggraph <- ggplot(avg, aes(x=Gene, y=mean)) + geom_point() +geom_line() + geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd), width=.1)
Run Code Online (Sandbox Code Playgroud)

第二张图描绘了跨所有基因的每个样品的线形式的基因表达.

linegraphs <- ggplot(ge, aes(x=Gene, y=Expression, group=Samples, colour="#000099")) + geom_line() + scale_x_discrete(limits=flevels.tge)
Run Code Online (Sandbox Code Playgroud)

我想在线图上叠加avggraph.有没有办法做到这一点?我试过avggraph + linegraphs但是我收到了一个错误.我认为这是因为图表是由两个不同的数据帧生成的.

我还应该指出两个图的轴是相同的.两个图都具有X轴上的基因和Y轴上的基因表达.

任何帮助将不胜感激!

r graph ggplot2

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

将一个数据帧添加到R中另一个data.frame的末尾

我很难在另一个数据框的底部添加一个.

我有一个数据帧(我们称之为DF1),它有1行和5列.我有另一个有50行和5列的数据帧(我们称之为DF2).我将其设置为两个BOTH数据帧之间的列匹配 - 它们具有相同的列.实际上,DF1是基于DF2的计算.

这就是DF1的样子:

   row.names     pt1     pt2     pt3     pt4
   calc          0.93    0.45    0.28    0.54
Run Code Online (Sandbox Code Playgroud)

这就是DF2的样子:

   row.names     pt1     pt2     pt3     pt4
   SNP1          AA      AG      AG      AA       
   SNP2          CT      CT      TC      CC
   SNP3          GG      CG      CG     <NA>
   SNP4          AA      GG      AG      AA
   SNP5         <NA>    <NA>    <NA>    <NA>
Run Code Online (Sandbox Code Playgroud)

DF1应该是实际数据点的数量(未丢失的值的数量)除以可能值的总数.

所以..我想将DF1添加到DF2的底部,如下所示:

   row.names     pt1     pt2     pt3     pt4
   SNP1          AA      AG      AG      AA       
   SNP2          CT      CT      TC      CC
   SNP3          GG      CG      CG     <NA>
   SNP4          AA      GG      AG      AA
   SNP5         <NA>    <NA>    <NA>    <NA>
   calc          0.93 …
Run Code Online (Sandbox Code Playgroud)

r rows dataframe

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

'names'属性必须与向量的长度相同

坚持R中的错误

    Error in names(x) <- value : 
      'names' attribute must be the same length as the vector
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思?

r

15
推荐指数
2
解决办法
8万
查看次数

如何将摘要输出转换为数据框?

我总结了一个由ID组成的数据框列(称为DATA),因此我得到了给定列中每个ID的总数.我想将它转换为另一个数据帧(称为TOTALNUM),所以我有两列.第一列是ID本身,第二列是每个ID的总数.这可能吗?

样本数据:

ids <- c(1,2,3,4,5,1,2,3,1,5,1,4,2,2,2)
info <- c("A","B","C","A","B","C","A","B","C","A","B","C","A","B","C")
DATA <- data.frame(ids, info)
DATA$ids <- as.factor(DATA$ids)
Run Code Online (Sandbox Code Playgroud)

我想把它放在一个数据框中:顶行是新数据框中的第一列.第二行将是新数据框中的第二列.

summary(DATA$ids)
Run Code Online (Sandbox Code Playgroud)

这就是我希望数据框看起来像:

ids    nums
1      4
2      5
3      2
4      2
5      2
Run Code Online (Sandbox Code Playgroud)

谢谢!!

r dataframe

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

在函数中返回不同的数据帧 - R.

是否可以从一个函数返回4个不同的数据框?

场景:

我正在尝试读取文件,解析它,并返回文件的某些部分.

我的函数看起来像这样:

parseFile <- function(file){

     carFile <- read.table(file, header=TRUE, sep="\t")

     carNames <- carFile[1,]
     carYear  <- colnames(carFile)

     return(list(carFile,carNames,carYear))
}
Run Code Online (Sandbox Code Playgroud)

我不想使用list(carFile,carNames,carYear).有没有办法返回3个数据帧而不先将它们返回到列表中?

r function dataframe

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

读取文件 - 警告消息

我有一个文件,有22268行BY 2521列.当我尝试使用以下代码行读入文件时:

file <- read.table(textfile, skip=2, header=TRUE, sep="\t", fill=TRUE, blank.lines.skip=FALSE)
Run Code Online (Sandbox Code Playgroud)

但我只读入了13024行BY 2521列,并出现以下错误:

x <-count.fields(textfile, sep="\t", skip=2)
incorrect <- which(x != 2521)
Run Code Online (Sandbox Code Playgroud)

我还使用此命令查看哪些行的列数不正确:

file <- read.table(textfile, skip=2, header=TRUE, sep="\t", fill=TRUE, blank.lines.skip=FALSE)
Run Code Online (Sandbox Code Playgroud)

并找回了大约20行不正确的列表.

有没有办法用NA值填充这些行?

我认为这是"fill"参数在read.table函数中的作用,但它并没有出现.

要么

有没有办法忽略"不正确"变量中标识的这些行?

warnings r read.table

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

在R中为多行创建散点图

我有一个看起来像这样的数据框:

        Samp1    Samp2    Samp3     Samp4    Samp5
Gene1    84.1     45.2     34.3      54.6     76.2
Gene2    94.2     12.4     68.0      75.3     24.8
Gene3    29.5     10.5     43.2      39.5     45.5
...
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个散点图,其中x轴是样本(Samp1-5),y轴是行(Gene1-3等等),但我希望绘制每行的数据作为同一情节中的不同颜色.

关于如何在R中做到这一点的任何想法?我非常愿意在R中使用ggplot2,格子,汽车或任何其他包装.

plot r scatter-plot ggplot2 lattice

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

拆分一个数据帧中的所有列,并在R中创建两个数据帧

我有一个数据框(让我们称之为df),如下所示:

col1 <- c("1/10", "2/30", "1/40", "3/23", "0/17", "7/14")
col2 <- c("2/44", "0/13", "4/55", "6/43", "0/19", "2/34")
col3 <- c("0/36", "0/87", "3/11", "2/12", "4/33", "0/12")
col4 <- c("1/76", "2/65", "2/21", "5/0", "2/26", "1/52")

df <- data.frame(col1,col2,col3,col4)
Run Code Online (Sandbox Code Playgroud)

目标:在每个单元格中有两个数字用"/"分隔.创建两个数据帧:1个具有LEFT编号的数据帧和另一个具有RIGHT编号的数据帧.

理想情况下,最终结果如下所示:

df.left.numbers:

  col1 col2 col3 col4
  1    2    0    1
  2    0    0    2
  1    4    3    2
  3    6    2    5
  0    0    4    2
  7    2    0    1
Run Code Online (Sandbox Code Playgroud)

df.right.numbers:

  col1 col2 col3 col4
  10   44   36   76
  30   13   87 …
Run Code Online (Sandbox Code Playgroud)

r strsplit dataframe

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

删除所有列中具有相同值的行

假设我有一个如下所示的数据框(df):

options(stringsAsFactors = F)

cars <- c("Car1", "Car2", "Car3", "Car4", "Car5", "Car6", "Car7", "Car8", "Car9")
test1 <- c(0,0,3,1,4,2,1,3,0)
test2 <- c(0,0,2,1,0,2,2,5,0)
test3 <- c(1,0,5,1,2,2,6,7,0)
test4 <- c(2,NA,2,1,2,2,1,1,0)
test5 <- c(0,0,1,1,0,2,1,3,0)
test6 <- c(1,0,1,1,1,2,3,4,0)
test7 <- c(3,0,2,1,0,2,1,1,0)

df <- data.frame(cars,test1,test2,test3,test4,test5,test6,test7)

#df
   cars test1 test2 test3 test4 test5 test6 test7
#1 Car1     0     0     1     2     0     1     3
#2 Car2     0     0     0    NA     0     0     0
#3 Car3     3     2     5     2     1     1     2
#4 Car4     1     1     1 …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

在R中最后一次出现特定字符后删除字符

我有一个看起来像这样的字符串:

exampleList <- c("rs40535:1745233:G:A_AGGG","rs41111:1733320:GAC:AAC_TTTTTTG", "exm2344379:1724237:A:T_A", "exm-rs234380:1890910:A:G_A", "rs423444419_T","psy_rs73453432_TCCC","22:1701234072:C:T_C","9:4534345:rs2342342_G","chr10_rs7287862_C","psy_rs7291672_A")  
Run Code Online (Sandbox Code Playgroud)

我希望删除最后一个下划线(_)之后的所有内容,所以我的结果看起来像这样:

[1] "rs40535:1745233:G:A"      "rs41111:1733320:GAC:AAC"  "exm2344379:1724237:A:T"   "exm-rs234380:1890910:A:G"   "rs423444419"              "psy_rs73453432"           "22:1701234072:C:T"        "9:4534345:rs2342342"     "chr10_rs7287862"          "psy_rs7291672"    
Run Code Online (Sandbox Code Playgroud)

我已经尝试了以下内容,但这会在第一个_之后删除所有内容.

gsub("\\_.*$","",exampleList) 
Run Code Online (Sandbox Code Playgroud)

我认识到有类似的帖子,但我在R中找不到.

regex r

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

标签 统计

r ×10

dataframe ×5

ggplot2 ×2

function ×1

graph ×1

lattice ×1

plot ×1

read.table ×1

regex ×1

rows ×1

scatter-plot ×1

strsplit ×1

warnings ×1