我在列表中导入了60个数据帧。每个dfs都有67500行,如下所示:
$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
我已经能够使用此脚本从所有60个数据帧中调出一个特定行(通过指定值):
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)
})
现在我想系统地从第35个df的第2个数据帧......(n-34)帧中的第1个数据帧,第(n-1)行调出第n行,依此类推。我怎么能循环呢?
答案 0 :(得分: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)
从1
转到3
当x == 1
获得第一个数据框(myList[[1]]
)并从中提取第n行([3 - 1 + 1, ]
)时。
当x == 2
获取第二个数据帧(myList[[2]]
)并从中提取第n - 1行([3 - 2 + 1, ]
)时。