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
如何将.table()多个文件读入R中的单个表中?_R_Import - Fatal编程技术网

如何将.table()多个文件读入R中的单个表中?

如何将.table()多个文件读入R中的单个表中?,r,import,R,Import,我有名为.csv的文件名,我想为每个测试制作图表。我能看到的最好的方法是为每个TestName创建一个R表。每个测试都会产生相同的数据列,因此我想将每个测试的所有数据拉入一个R datatable中,并为inputdata增加一列 我想做: read.tables(c("B217.SE.csv", "C10.SE.csv"), sep=",") 产生(例如): 正确的方法是什么?一些我不知道的现有函数?使用for循环在R语言中写出它?我无法在您的数据上测试它,但您需要使用如下类型的apply函

我有名为
.csv
的文件名,我想为每个测试制作图表。我能看到的最好的方法是为每个TestName创建一个R表。每个测试都会产生相同的数据列,因此我想将每个测试的所有数据拉入一个R datatable中,并为inputdata增加一列

我想做:

read.tables(c("B217.SE.csv", "C10.SE.csv"), sep=",")
产生(例如):


正确的方法是什么?一些我不知道的现有函数?使用for循环在R语言中写出它?

我无法在您的数据上测试它,但您需要使用如下类型的
apply
函数:

data <- do.call("rbind", lapply(c("file1", "file2"), function(fn) 
           data.frame(Filename=fn, read.csv(fn)
))
在这种情况下,我将使用
get
而不是
read.csv

> data <- ldply(c("df1", "df2"), function(dn) data.frame(Filename=dn, get(dn)))
> data
  Filename c1          c2
1  df1  1 -0.15679732
2  df1  2 -0.19392102
3  df1  3  0.01369413
4  df1  4 -0.73942829
5  df1  5 -1.27522427
6  df2  3 -0.33944114
7  df2  4 -0.12509065
8  df2  5  0.11225053
9  df2  6  0.88460684
10 df2  7 -0.70710520
>数据
文件名c1 c2
1 DF11-0.15679732
2 df1 2-0.19392102
3 df1 3 0.01369413
4 df1 4-0.73942829
5 df1 5-1.27522427
6 df2 3-0.33944114
7 df2 4-0.12509065
8 df2 5 0.11225053
9 df2 6 0.88460684
10 df2 7-0.70710520
编辑

根据Marek的建议,您可以覆盖或创建自己的函数:

read.tables <- function(file.names, ...) {
    require(plyr)
    ldply(file.names, function(fn) data.frame(Filename=fn, read.csv(fn, ...)))
}

data <- read.tables(c("filename1.csv", "filename2.csv"))
read.tables试试这个:

## take files.
files <- list.files(pattern=".csv")
## read data using loop
DF <- NULL
for (f in files) {
   dat <- read.csv(f, header=T, sep="\t", na.strings="", colClasses="character")
   DF <- rbind(DF, dat)
}
##获取文件。

总泛化方式中的文件:
read.tables我通常会执行类似于
names(file.names)的操作,为了按文件名跟踪数据,我热衷于从
f
变量中提取名称。我使用
tools
package使用
file\u path\u sans\u ext
获取文件名。唯一需要注意的是,它以向量列/行id(维度)输出。我怎么能只知道名字?
read.tables <- function(file.names, ...) {
    require(plyr)
    ldply(file.names, function(fn) data.frame(Filename=fn, read.csv(fn, ...)))
}

data <- read.tables(c("filename1.csv", "filename2.csv"))
## take files.
files <- list.files(pattern=".csv")
## read data using loop
DF <- NULL
for (f in files) {
   dat <- read.csv(f, header=T, sep="\t", na.strings="", colClasses="character")
   DF <- rbind(DF, dat)
}