簡體   English   中英

將數據幀與R中的向量合並

[英]merge data frame with vector in R

基於對來自微陣列(帶有EMA軟件包)的基因表達數據的t檢驗和隨后的注釋,我生成了一個數據框,如下所示:

>

 head(rt.annot)
      affy_hg_u133_plus_2     probeID      Stat    RawpValue    AdjpValue entrezgene hgnc_symbol ensembl_gene_id
14744           204103_at   204103_at 11.754856 1.718688e-20 9.396926e-16       6351        CCL4 ENSG00000275302
721            1553177_at  1553177_at 10.358405 1.810027e-17 4.948161e-13     117157      SH2D1B ENSG00000198574
16279         205495_s_at 205495_s_at  9.909715 1.721748e-16 3.137886e-12      10578        GNLY ENSG00000115523
21763           210163_at   210163_at  9.496225 1.374429e-15 1.623589e-11         NA        <NA>            <NA>
44641           230464_at   230464_at  9.480850 1.484763e-15 1.623589e-11      53637       S1PR5 ENSG00000180739
18998           207840_at   207840_at  9.383745 2.417818e-15 1.652428e-11      11126       CD160 ENSG00000117281

60376行和8列。

我還測量了兩組之間基因表達的倍數變化,這產生了一個載體:

> head(fcOUT)
1007_s_at   1053_at    117_at    121_at 1255_g_at   1294_at 
0.9436815 1.0098279 1.0230719 0.9826041 0.9917645 1.0906764 

如何合並數據幀(rt.annot)和向量(fcOUT)(以便根據第一列aafy_hg_u133_plus_2(因此不作為cbind函數)將向量對齊為矩陣的一列)? 我在其他地方找不到答案。

謝謝!

從向量中提取名稱到數據框,然后將該數據框連接到主數據上。 下面是執行此操作的簡單示例:

v1 <- as.vector(c(1,2,3))
names(v1) <- c('a', 'b', 'c')

df <- data.frame('affy_hg_u133_plus_2' = names(v1), 'values' = v1)

然后,您可以通過affy_hg_u133_plus_2將df合並到主數據幀中。

您是否嘗試過merge

a <- c("c1", "c2", "c3")
x <- 1:3
y <- runif(3)

foo <- data.frame(a = a, x = x)
bar <- data.frame(a = a, y = y)
merge(foo, bar, by = "a")

另外,請閱讀此內容 ,並使示例最少且可重復。

您可以從矢量構建數據框並加入它們:

d.fcOUT = data.frame(aafy_hg_u133_plus_2 = names(fcOUT),
                                 fcOUT = fcOUT, stringsAsFactors=F)
library(dplyr)
left_join(rt.annot, d.fcOUT)

或者您使用match()函數:

rt.annot$fcOUT = fcOUT[match(rt.annot$aafy_hg_u133_plus_2, names(fcOUT))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM