创建一个函数,其中包含数据框的所有列作为r中的输入

时间:2016-12-20 07:41:22

标签: r function

我有两个数据框; “临床” “表达”
“临床”数据框包含有关乳腺癌患者(行)的各种临床参数(列)的数据。 “表达”包含关于乳腺癌患者(行)中表达基因水平(列)的数据。 “表达式”数据框中的列名称是各种 “gene.ID”
两个数据帧都具有相同的患者(行),并且在列中仅相互不同。但是,每个数据帧中的行与其他数据帧的行的顺序不完全相同 我想测试并绘制某个基因的表达水平与队列中个体的临床参数之间的相关性。
为了做到这一点,我试图创建一个函数,(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语句就可以完成工作 我希望我的问题很清楚。

1 个答案:

答案 0 :(得分:0)

  

两个数据帧都具有相同的患者(行),并且只有不同   列中彼此相对。但是,每个数据框中的行都不是   与其他数据帧的顺序完全相同。

函数cbind允许您按列加入(&#34; bind&#34;)两个数据集(&#34; c&#34;)。由于每个数据集具有相同的患者,但顺序不同,因此您需要首先对一个数据集的行进行排序以匹配其他数据集。

cbind(clinical_data, expression_data[rownames(clinical_data), ])

现在您只有一个data.frame,其中包含其余分析所需的所有内容。