2017-04-21 72 views
0

我有数据文件类似如何将数据从存储函数read.table变量数组

class1 class2 .... 
1  1  .... 
2  1 

如果我尝试读取这样

var <- read.table("file path", sep="\t",header=TRUE) 

它工作正常的数据文件,这样我就可以使用'var'变量访问数据。 但是,如果我尝试读取使用变量列表像这样使用循环的数据,

var <- c() 
for(file in list.files(path="inputDir")){ 
    i <- i+1 
    var[i] <- read.table("file path", sep="\t", header=TRUE) 
} 

我只得到该文件的第一列,并不能获得该文件的全部数据。

我是否必须制作单独的变量,如var1,var2,...?我不能使用var[i]

+0

所以你想在你的R环境中使用'Class1 < - c(1,2)'和'Class2 < - c(1,1)'? –

回答

1

随着

var <- c() 

创建(数值)载体。我猜导入的数据也被强制转换为这种格式,这就是为什么你只看到'一列'。

你想要的是一个清单:

var <- list() 

确保用双括号指数它之后,就像这样:

var[[i]] = ... 
+0

完美运作。谢谢你! – user2659088

1

您应该使用list做这样的工作。 data.frame只能存储具有相同行的变量。

var <- list() 
i <- 1 
for(file in list.files(path="inputDir")){ 

    var[[as.character(i)]] <- read.table("file path", sep="\t", header=TRUE) 
    i <- i+1 
} 

我希望这会帮助你。

我不这样做,如果这些代码可以正常工作,并且可以根据错误报告进行调试。 如果你真的不知道该怎么做,你应该给一些示例文件,这样每个人都可以为你调试。

+0

“list()”与“[[i]]”工作。谢谢你! – user2659088