在同一个表中读取R中的多个文件,作为不同的变量
我有100个文件,每个文件名为rundataX,其中x是数字。我想在一个名为mydata的表中的R中读取它们。每个rundata文件都有3列:tmX、scoreX和currentX。我可以这样读取一个文件:在同一个表中读取R中的多个文件,作为不同的变量,r,statistics,R,Statistics,我有100个文件,每个文件名为rundataX,其中x是数字。我想在一个名为mydata的表中的R中读取它们。每个rundata文件都有3列:tmX、scoreX和currentX。我可以这样读取一个文件: mydata = read.table("rundata1", sep= " ", col.names=c("tm1","score1","current1")) 如果我读入下一个文件,前面的变量似乎消失了: mydata = read.table
mydata = read.table("rundata1", sep= " ",
col.names=c("tm1","score1","current1"))
如果我读入下一个文件,前面的变量似乎消失了:
mydata = read.table("rundata2", sep= " ",
col.names=c("tm2","score2","current2"))
是否有一些选项允许我附加列和变量。请注意,它们都有不同的行数长度。我在这里找到的大多数帖子都是关于多个文件的,用于拆分行,而不是列。下面是list.files和lappy的方法:
在代码中,每次使用read.table时都会覆盖mydata。下面是使用list.files和lappy的方法:
在代码中,每次使用read.table时都会覆盖mydata。如果不介意使用循环,可以尝试:
file.names <- paste("rundata", 1:100, sep= "")
tm.names <- paste("tm", 1:100, sep= "")
score.names <- paste("score", 1:100, sep= "")
current.names <- paste("current", 1:100, sep= "")
my.data.list <- list()
for(i in 1:100){
my.data.list[[i]] <- read.table(file.names[i], sep= " ",
col.names=c(tm.names[i], score.names[i],
current.names[i]) )
}
my.data <- do.call(cbind, my.data.list)
rm(my.data.list, file.names, tm.names, score.names, current.names)
如果您不介意使用循环,可以尝试:
file.names <- paste("rundata", 1:100, sep= "")
tm.names <- paste("tm", 1:100, sep= "")
score.names <- paste("score", 1:100, sep= "")
current.names <- paste("current", 1:100, sep= "")
my.data.list <- list()
for(i in 1:100){
my.data.list[[i]] <- read.table(file.names[i], sep= " ",
col.names=c(tm.names[i], score.names[i],
current.names[i]) )
}
my.data <- do.call(cbind, my.data.list)
rm(my.data.list, file.names, tm.names, score.names, current.names)