Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一个表中读取R中的多个文件,作为不同的变量_R_Statistics - Fatal编程技术网

在同一个表中读取R中的多个文件,作为不同的变量

在同一个表中读取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

我有100个文件,每个文件名为rundataX,其中x是数字。我想在一个名为mydata的表中的R中读取它们。每个rundata文件都有3列:tmX、scoreX和currentX。我可以这样读取一个文件:

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)