我有两个数据框架:“临床”和表达式“”
“临床”数据包含关于乳腺癌(rows)患者各种临床参数(列)的数据。“表达”包含关于乳腺癌(rows)患者表达基因水平(列)的数据。“表达式”dataframe中的列名是各种"gene.ID"。
这两个数据文件都有相同的病人(行),并且仅在列中彼此不同。但是,每个dataframe中的行与其他dataframe的顺序并不完全相同。
我想测试和标出某一基因表达水平与队列中个体临床参数之间的相关性。
为了做到这一点,我试图创建一个函数:(1)接收这些数据和特定基因的gene.ID;(2)提取该基因的表达模式;(3)从两个数据中匹配患者;(4)检查所有的临床参数;(5)每次对另一个临床参数进行计算。
我的主要问题是“检查所有的临床参数”部分,虽然我非常肯定我的其余代码并不是更好。
到目前为止,我的代码如下所示:
my_function <- function(clinical_data, expression_data, gene.ID){
gene.ID <- (expression_data$gene.ID)
expression.pattern <- as.numeric(expression$gene.ID)
matched.samples <- match(row.names(clinical), row.names(expression))
for(i in names(clinical)){
***here will come an if statement***我也认为我对"gene.ID“有一个严重的问题。
我想知道我的函数应该改变什么,这样一旦我写了if语句,它就能完成这项工作。
我希望我的问题足够清楚。
发布于 2016-12-20 08:52:46
这两个数据文件都有相同的病人(行),并且仅在列中彼此不同。但是,每个dataframe中的行与其他dataframe的顺序并不完全相同。
函数cbind允许您按列("c")连接(“绑定”)两个数据集。因为每个数据集都有相同的病人,但顺序不同,因此您需要首先对一个数据集的行进行排序,以匹配另一个数据集。
cbind(clinical_data, expression_data[rownames(clinical_data), ])现在,您只有一个data.frame,它包含了其余分析所需的所有内容。
https://stackoverflow.com/questions/41237111
复制相似问题