首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过两个数据集的观测值识别个人

通过两个数据集的观测值识别个人
EN

Stack Overflow用户
提问于 2014-05-13 18:52:28
回答 2查看 130关注 0票数 1

我正在和R和"WGCNA" package一起工作。我正在做转录组和代谢组的综合分析。

我有两个data.frames,一个用于转录组数据:datExprFemale,另一个用于元组学数据:allTraits,但是我在将这两个data.frames合并在一起时遇到了麻烦。

代码语言:javascript
复制
> datExprFemale[1:5, 1:5]
ID    gene1         gene2       gene3        gene4
F16 -0.450904880  0.90116800 -2.710879397  0.98942336
F17 -0.304889916  0.70307639 -0.245912838 -0.01089557
F18  0.001696330  0.43059153 -0.177277078 -0.24611398
F19 -0.005428231  0.32838938  0.001070509 -0.31351216
H1   0.183912553 -0.10357460  0.069589703  0.15791036

> allTraits[1:5, 1:5]
IND   met1          met2        met3         met4
F15   6546          68465       56465        6548
F17   89916         7639        2838         9557
F20   6330          53          7078         11398
F1    231           938         509          351216

allTraits中的个体在datExprFemale中有测量,但datExprFemale中的某些个体在allTraits中不出现。

下面是我尝试将这两个data.frames合并在一起的方法:

代码语言:javascript
复制
# First get a vector containing the row names (individual's ID) in datExprFemale
IND=rownames(datExprFemale)
# Get the rows in which two variables have the same individuals
traitRows = match(allTraits$IND, IND)
datTraits = allTraits[traitRows, -1]

这为我提供了以下内容:

代码语言:javascript
复制
         met1                       met2    met3                      met4
11       0.0009                     0.0559   7.1224                    3.3894
12       0.0006                     0.0370  10.5776                   14.4437
15       0.0011                     0.0295   5.7941                   19.0225
16       0.0010                     0.0531   6.1010                    4.7698
17       0.0016                     0.0462   7.7819                    7.8796
19       0.0011                     0.0192  12.7126                    9.2564
20       0.0007                     0.0502   9.4147                   15.3579
21       0.0025                     0.0455   8.4129                   17.7273
NA           NA                         NA       NA                        NA
NA.1         NA                         NA       NA                        NA
NA.2         NA                         NA       NA                        NA
NA.3         NA                         NA       NA                        NA
NA.4         NA                         NA       NA                        NA
3        0.0017                     0.0375   8.8503                    8.7581
7        0.0006                     0.0156   7.9272                    4.9887
8        0.0011                     0.0154   8.4716                    8.6515
9        0.0010                     0.0306   9.1220                    3.5843

正如您所看到的,有一些NA值,但我不确定为什么?

现在,当我想使用以下代码将每个人的ID分配给相应的行时:

代码语言:javascript
复制
rownames(datTraits) = allTraits[traitRows, 1]

R给出了这个错误:

代码语言:javascript
复制
Error in `row.names<-.data.frame`(`*tmp*`, value = value) : 
  duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': 

我不确定我做错了什么,

EN

回答 2

Stack Overflow用户

发布于 2014-05-13 21:00:09

你的代码中有几个问题:

  1. 在您所提供的格式中,您的datExprFemale没有rownames,因此匹配在all.
  2. match中不起作用all.
  3. match告诉您datExprFemale中的个体对应于
    1. 中的哪些行,而不是您需要从datExprFemale中提取的行

以下是我将采取的方法:

代码语言:javascript
复制
# First make sure `allTraits` and `datExprFemale` actually have the right rownames
rownames(datExprFemale) = datExprFemale$ID
rownames(allTraits) = allTraits$IND
# Now get the individuals who have both transcriptomic and metabolomic 
# measurements
has.both = union(rownames(allTraits), rownames(datExprFemale))
# Now pull out the subset of allTraits you want:
allTraits[has.both,]
票数 5
EN

Stack Overflow用户

发布于 2014-05-15 01:36:54

感谢您的回复。事实上,代码中的"datTraits“必须是这样的: Insulin_ug_l Glucose_Insulin Leptin_pg_ml Leptin_pg_ml Adiponectin Aortic.lesions F2_3 944 0.42055085 15148.76 14.339 296250 F2_14 632 6188.74 15.439 486313 F2_15 3326 0.16746843 0.16746843 11.124 180750F2_19 426 41801.54 8438.70 166750 F2_20 2906 0.15691672 41801.54 13.498 8438.70 F2_23 920 0.58804348 0.58804348 52360.00 52360.00 234 000 F2_24 1895 0.24538259 13.813 267500 F2_267293 126880.00 198000 198000 F2_37 653 0.65849923 17100.00 12.470 121000 F2_42 1364 0.35703812 99220.00 14.531 110000 F2_37 7293 7293 126880.00 126880.00 110000 F2_42 653 0.65849923 0.35703812 14.531 12.470

其中行是个体,列是代谢物。这个变量包含转录组和代谢组学文件中的个体。但在代码的情况下,我从WGCNA的教程中复制了它们。谢谢你的建议,贝扎德

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23629222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档