根据观察次数对输入文件进行排序

时间:2015-04-17 10:31:17

标签: r

我在目录中有多个具有不同观察数的文件,需要根据观察次数对文件进行排序,并将它们保存为序列file1,file2,file3 ....等等。 例如,考虑我有4个文件,其中观察数为5,6,3,2,分别命名为abc,ikl,hj,op。现在,排序和重命名文件后应按以下方式保存在目录中。 file1是具有观察次数2的文件,file2应该是文件是观察次数为3的文件,file3为5,file4为6.有没有办法可以在R中做到这一点?

 abc           ikl           nj                 op

1  2  3       20 1  2        76 43 56        233 123 56
4  5  6       10 5  8        12 11 10        564 15  45
7  8  9       3 77  9        4  2  1
10 11 12      12 8 90
13 14 15      5  6  8 
              2  1  7

重命名后:

file1          file2          file3          file4

233 123 56     76 43 56       1  2  3       20 1 2
564 15 45      12 11 10       4  5  6       10 5 8
                4  2  1       7  8  9       3 77 9
                              10 11 12     12 8 90
                              13 14 15      5 6 8
                                            2 1 7

请注意abc,ikl,hj,op,file1,file2,file3,file4是文件的名称。

1 个答案:

答案 0 :(得分:1)

很多代码但它完成了工作:

# Crate some data frames
abc <- data.frame(matrix(0, 5, 3))
ikl <- data.frame(matrix(1, 6, 3))
nj <- data.frame(matrix(2, 3, 3))
op <- data.frame(matrix(3, 2, 3))

# This is where your code starts
# put them in a list
l <- list(abc, ikl, nj, op)

# find the number of observations for each data.frame
l1 <- sapply(l, function(x) dim(x)[1])


for(i in 1:length(l)){
  assign(paste0("file", i), l[order(l1)][[i]])
}