2017-12-11 16 views
1

목록에 60 개의 데이터 프레임을 가져 왔습니다. 이러한 DFS 각각 67,500 행이와 같이 :다른 데이터 프레임에서 연속 된 행을 호출합니다.

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) 
}) 
:이 스크립트를 사용하여 모든 60 dataframes에서 (값을 지정하여) 하나 개의 특정 행을 호출 할 수 있었다

$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  

이제는 체계적으로 첫 번째 데이터 프레임에서 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 일 때 두 번째 데이터 프레임 (myList[[2]])을 가져오고 n 번째 - 1 번째 행을 추출합니다 ([3 - 2 + 1, ]).

+0

정말 고마워요 !! 그것은 작동합니다! –