我有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
提前致谢!!!!
答案 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