【发布时间】:2019-04-17 01:10:05
【问题描述】:
我是 R 新手,有一个大数据框,我想用列名中的单个字母分隔数据,然后在末尾附加一列,其中包含行的平均值。数据如下:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 gene_id gene_symbol Chr Biotype L001P L003P L004P L005P L008P
2 ENSG00000000003 TSPAN6 X protein_coding 31.8003 67.3098 63.033 63.83 38.6941
3 ENSG00000000005 TNMD X protein_coding 0.0372353 2.28841 0.032932 0 0.358512
4 ENSG00000000419 DPM1 20 protein_coding 17.5575 43.7474 21.0119 22.9765 26.3166
5 ENSG00000000457 SCYL3 1 protein_coding 2.68196 3.7079 3.14505 3.82323 3.32028
6 ENSG00000000460 C1orf112 1 protein_coding 0.532179 2.46598 1.11985 0.584227 1.20095
大约有 70 列和 13 行,您只能看到以“P”结尾的列 (V6:V10),但是在数据框下方的 39 列中它们以“t”结尾。我想知道如何将这两个“t”和“p”分开,然后表示行。
我试过apply、lapply、grep 和split,但似乎仍然无法将它们分开。每当我尝试应用平均值时,它都会全面返回 NA 值,现在可以确定从这里去哪里了。
【问题讨论】:
-
看起来你导入的数据没有标题,所以列名是
V1, V2, ...而不是gene_id, ...。如果您解决了这个问题,您可以使用which(stringr::str_detect(names(yourdata), "P$"))按编号选择列,例如P列。