将多个矩阵序列化为单个结构

时间:2014-10-13 20:44:28

标签: r

在R中,是否可以重写

iops1 <- read.csv('mytest_20141009_1755_iops.csv', skip=6)[2:21]
mbps1 <- read.csv('mytest_20141009_1755_mbps.csv', skip=6)[2:21]
lat1  <- read.csv('mytest_20141009_1755_lat.csv', skip=6)[2:21]

iops2 <- read.csv('mytest2_20141010_1034_iops.csv', skip=6)[2:21]
mbps2 <- read.csv('mytest2_20141010_1034_mbps.csv', skip=6)[2:21]
lat2  <- read.csv('mytest2_20141010_1034_lat.csv', skip=6)[2:21]

iops3 <- read.csv('mytest_20141011_2050_iops.csv', skip=6)[2:21]
mbps3 <- read.csv('mytest_20141011_2050_mbps.csv', skip=6)[2:21]
lat3  <- read.csv('mytest_20141011_2050_lat.csv', skip=6)[2:21]

像(伪代码)

[iops1,mbps1,lat1, iops2,mbps2,lat2, ... ]
 <- serial(read.csv, ('file1.csv','files2.csv','file3.csv',...), skip=6)[2:21]

我写了我的第一个R脚本,它按预期工作,只是环顾四周 如果可以更好地表达它的某些部分。我知道R有效率 句法。谢谢!

1 个答案:

答案 0 :(得分:1)

我不知道一个人会如何专门做你要求的但是你可以写一个循环来读取文件并命名它们。我通常会命名我要以时尚方式阅读的文件,以便让我循环浏览它们。因此,如果您可以将20141009_1755,20141010_1034和20141011_2050重命名为1,2,3,则以下工作方式可以循环显示大量文件。否则你仍然可以在下面做,但稍微修改一下代码。

file.names<-c('iops','mbps','lat')
for (i in 1:3) {
    for (j in file.names) {
        file<-read.csv(paste0('mytest_',i,j,'.csv'),skip=6)[2:21]) #read in your file
        assign(paste0(j,i),file) #rename your dataframe
    }
}