【发布时间】:2019-04-09 15:12:01
【问题描述】:
我有多个样本中基因表达的 xy 数据。我希望对第一列进行子集化,以便按字母顺序对基因进行排序并执行其他过滤。
> setwd("C:/Users/Will/Desktop/BIOL3063/R code assignment");
> df = read.csv('R-assignments-dataset.csv', stringsAsFactors = FALSE);
第一列是基因名称列表(A2M、AAAS、AACS 等),每一列是不同的组织样本,从而显示每个组织样本中的基因表达。
提出的问题是“按字母顺序 (A-Z) 对基因名称进行排序并打印出前 20 个基因名称”
我的想法是对第一列(基因名称)进行子集化,然后执行 order() 按字母顺序排序,之后我可以使用 head() 打印前 20 个。
但是当我尝试时
> genes <- df[1]
它只是子集包含数据的第一列 (TCGA-A6-2672_TissueA) 而不是其左侧的列。
还有
> genes <- df[,df$col1];
> genes;
data frame with 0 columns and 7065 rows
> order(genes);
integer(0)
似乎在 R Studio 的查看器中创建了一个基因名称列表,但我无法对其执行任何操作。
我无法正确定位 data.frame 中的第一列,因为它没有列标题,并且在对第 1 行(示例名称)执行相同操作时,我也遇到了同样的问题。
我是 R 的新手,这是我正在处理的任务的一部分,我似乎遗漏了一些基本的东西,但我不知道是什么。
大家好
【问题讨论】:
-
那么这里想要的结果到底是什么?您是否试图提取以“A2M|2”开头的值?当第一列没有标题时,R 会将它们作为行名读取。试试看
rownames(df)。
标签: r sorting dataframe bioinformatics