获取具有匹配标题的所有列并在R

时间:2015-05-13 16:04:05

标签: r

我有3个文件,每列属于一个样本。我最终需要绘制x与y的关系。但是,我的x值在一个文件中,相应的y值在另一个文件中。有超过200个文件,所以我不想手动从所有文件中选择col1。

我想根据标题抓取所有三个并发送到新文件。如果它更容易,我也可以通过将文件1设置为x值直接绘制,并将文件2中的相应匹配设置为y值。不确定哪个更容易,我已经尝试了循环和合并,但我无法让它正常工作。我正在使用R,但我愿意接受任何有用的东西。

到目前为止在R:

中试过这个
for (i in 1:ncol(m)) {
  a <- data.frame(m[, i])
  myfile <- file.path(tempdir(), paste0(i, ".txt"))
  write.table(a, file = myfile, sep = "", row.names = FALSE, col.names = FALSE,
          quote = FALSE, append = FALSE)
}

文件1看起来像这样(x值):

ATP6V1H SLC24A1 STK17B
0.05934657  0.9567147   0.05235321
0.07479263  0.9372463   0.05292247
0.09478673  0.9470376   0.04198125
0.1288194   0.9519405   0.06007662

文件2看起来像这样(y值):

ATP6V1H SLC24A1 STK17B
1.6378678   -0.07271993 1.09079677
-0.49133659 1.6378678   0.41088151
0.14582699  -0.10920048 0.80591848
-0.07271993 -1.02715427 -1.51238959

文件3看起来像这样(颜色代码的因素):

ATP6V1H SLC24A1 STK17B
4   4   4
4   4   4
4   4   4
0   0   0

提前致谢!!!!

1 个答案:

答案 0 :(得分:0)

我认为这应该有帮助

x <- read.table("x.txt", header=TRUE, quote="\"")
y <- read.table("y.txt", header=TRUE, quote="\"")
color <- read.table("color.txt", header=TRUE, quote="\"")

headername <- names(x)

for(i in 1:length(headername)) {

  combinedresult <- cbind(x[headername[i]],y[headername[i]],color[headername[i]])
  colnames(combinedresult) <- c("x","y","color")
  write.table(combinedresult,paste(headername[i],".txt",sep=""),quote=TRUE,row.names = FALSE)

}

这将为您提供三个文件,每个列名称和每个文件的输出将类似

"x" "y" "color"
0.05934657 1.6378678 4
0.07479263 -0.49133659 4
0.09478673 0.14582699 4
0.1288194 -0.07271993 0