我有一堆文件需要合并到一个数据框架中。文件名如下:unc.edu.b6530750-0410-43ec-bb79-f862ca3424a6.1918120.rsem.genes.results。
我希望文件名成为列名。我正在使用以下代码:
for (file in file_list){
if (!exists("dataset")){
dataset <- read.table(file, header=TRUE, colClasses = c(rep("character", 2), rep("NULL", 2)), col.names = c("gene_id", deparse(substitute(file)), "NuLL", "NULL"), sep="\t")
print(deparse(substitute(file)))
}
if (exists("dataset")){
temp_dataset <-read.table(file, header=TRUE, colClasses = c(rep("character", 2), rep("NULL", 2)), col.names = c("gene_id", deparse(substitute(file)), "NuLL", "NULL"), sep="\t")
print(deparse(substitute(file)))
dataset<-merge(dataset, temp_dataset, by = "gene_id")
rm(temp_dataset)
}
}
除了列名现在被点替换掉下划线外,一切进展顺利。
colnames(data)
[1] "gene_id"
[2] "X...unc.edu.02cb8dbe.ef56.471c.b52d.41c29219fd95.1794854.rsem.genes.results..x"
[3] "X...unc.edu.02cb8dbe.ef56.471c.b52d.41c29219fd95.1794854.rsem.genes.results..y"
[4] "X...unc.edu.02f5dcba.bdcc.4424.aed4.195a8d551325.2085643.rsem.genes.results."
有关导致这种情况的任何解释都将很有帮助,因为我稍后需要使用另一个文件更改这些名称。
read.table(file, ..., check.names=FALSE)
意思是在读取数据时不检查列名是否合法。 - akrun