2017-12-11 9 views
1

リストに60個のデータフレームをインポートしました。これらのDFSのそれぞれは、67500行を持っているし、次のようになります。私はこのスクリプトを使用して、すべての60個のデータフレームから(値を指定することにより)1つの特定の行を呼び出すことができました異なるデータフレームから連続した行を呼び出す

$B00300.dat 
      ZONE T..Frame  X0.. I.300. 
1  -152.727318 75.200516 0.000000 0.000000  
2  -150.659950 75.200516 0.000000 0.000000  
3  -148.592582 75.200516 0.000000 0.000000  
4  -146.525213 75.200516 0.000000 0.000000  
5  -144.457845 75.200516 0.000000 0.000000  
6  -142.390477 75.200516 0.000000 0.000000  
7  -140.323109 75.200516 0.000000 0.000000  
8  -138.255741 75.200516 0.000000 0.000000  

list.filenames <- list.files(path = "D:/data") 
list.filenames 
list.data <- list() 
for(i in 1:length(list.filenames)) { 
    list.data[[i]] <- read.delim(list.filenames[I], header = TRUE, 
           sep = "", skip = 2) 
} 
names(list.data) <- list.filenames 
list.data[1] 

lapply(list.data, function(x) { 
    filter(x,ZONE==399.259947, T..Frame==-150.142600) 
}) 

今、私は最初のデータフレームからn番目の行を、n番目のデータフレームから(n-1)番目の行を35番目のdfから(n-34)番目のフレームまで体系的に呼び出す必要があります。どのように私はループでこれを行うことができますか?

答えて

0

あなたはこのような何かをやって試すことができます:

# Your list of dataframes 
myList <- list(mtcars, mtcars, mtcars) 
# nth row to call 
startAt <- 3 

t(sapply(1:length(myList), function(x) myList[[x]][startAt - x + 1, ])) 

1:length(myList)31から行きます。
x == 1の場合、最初のデータフレーム(myList[[1]])を取得し、n番目の行を抽出します([3 - 1 + 1, ])。
x == 2の場合、2番目のデータフレーム(myList[[2]])を取得し、n番目 - 1行を抽出します([3 - 2 + 1, ])。

+0

ありがとうございます!できます! –

関連する問題