【问题标题】:index value doesn't match in r索引值在 r 中不匹配
【发布时间】:2015-06-12 14:47:01
【问题描述】:

在进行任何更改之前,我会汇总表格。然后我提取排除具有空值和“I或II NOS”的数据的数据,并分别分配给a1和a2。 a1 有正确的数据。但显示a2仍有4个“I or II NOS”数据。当我试图索引原始表的“I 或 II NOS”数据时,它给出了 10 行,但 4 行的值不是“I 或 II NOS”。这是怎么发生的?有人可以帮助我吗?我没有足够的声誉来粘贴结果丝网印刷图片,所以我只粘贴代码。提前致谢。

a1 = a[AJCC_PATHOLOGIC_TUMOR_STAGE!='',]

a2 = a1[AJCC_PATHOLOGIC_TUMOR_STAGE!='I or II NOS',]

抱歉,我更新了问题并粘贴了整个代码。

library("cgdsr", lib.loc="~/R/win-library/3.1")
library("R.oo", lib.loc="~/R/win-library/3.1")
library("R.methodsS3", lib.loc="~/R/win-library/3.1")
# Create CGDS object
mycgds = CGDS("http://www.cbioportal.org/public-portal/")
test(mycgds)
# Get list of cancer studies at server
getCancerStudies(mycgds)[, c(1,2)]

mycancerstudy = getCancerStudies(mycgds)[78,1]
# Get available case lists (collection of samples) for a given cancer study
getCaseLists(mycgds,mycancerstudy)[,1]

mycaselist = getCaseLists(mycgds,mycancerstudy)[2,1]

# Get available genetic profiles
getGeneticProfiles(mycgds,mycancerstudy)[,1]

mygeneticprofile = getGeneticProfiles(mycgds,mycancerstudy)[2,1]

# Get clinical data for the case list
myclinicaldata = getClinicalData(mycgds,mycaselist)

# skcm_tcga_rna_seq_v2_mrna_median_Zscores
z_score_caselist = getCaseLists(mycgds,mycancerstudy)[7,1]

# Get data slices for a specified list of genes, genetic profile and case list
WNT5A = getProfileData(mycgds,c('WNT5A'),mygeneticprofile,mycaselist)

# documentation
help('cgdsr')
help('CGDS')

WNT5A_stage = merge(WNT5A,myclinicaldata, by = 'row.names')
WNT5A_stage_table = WNT5A_stage[, c(2, 6)]
a = na.omit(WNT5A_stage_table)
a1 =  a[a$AJCC_PATHOLOGIC_TUMOR_STAGE!='']
a2 = a1[AJCC_PATHOLOGIC_TUMOR_STAGE!='I or II NOS',]

只需更新部分结果如下。可以看到值和索引不一样。

>a1[AJCC_PATHOLOGIC_TUMOR_STAGE=='I or II NOS',]
        WNT5A         AJCC_PATHOLOGIC_TUMOR_STAGE
  8     712.1645                 I or II NOS
 28      7.5434                 I or II NOS
 33      3.6290                 I or II NOS
 34      8.7881                 I or II NOS
 38    150.3167                 I or II NOS
 47     34.3643                 I or II NOS
 180    19.1529                    Stage IB
 304    20.1072                   Stage IIC
 324    44.0167                    Stage IB
 337 19142.6676                  Stage IIIC

【问题讨论】:

  • 你需要给出一些样本数据和一个可重现的可能的例子。
  • 但是,如果这是一个标准数据框,您实际上并没有适当地进行子设置。您要么需要a2 <- a1[a1$AJCC_PATHOLOGIC_TUMOR_STAGE != "I or II NOS", ],要么使用subset
  • 需要示例数据、代码和预期/实际输出来充分帮助您解决问题。
  • 对不起,我是使用这个网站的初学者。如何提供样本数据?谢谢。
  • 删减你的代码,包括大约 6 行示例数据,然后只包含你不理解的部分的代码和你得到的结果。然后还显示你想要的结果是什么。

标签: r indexing


【解决方案1】:

正如我的评论中所指出的,您没有使用新数据框中的列进行子设置。你需要:

a2 = a1[a1$AJCC_PATHOLOGIC_TUMOR_STAGE!='I or II NOS',]

a2 = subset(a1, AJCC_PATHOLOGIC_TUMOR_STAGE != 'I or II NOS')

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多