r-如何使用for循环选择列表中每个数据帧的特定列的最后一行的值



我有一个数据帧列表,这些数据帧具有相同的变量,但观测值的数量不同。例如,我的一个数据帧的最后10行如下:

BIN_END_TIME  AVERAGE_PUPIL_SIZE_BIN
3238          172
3258          171       
3278          171
3298          170
3318          170
3338          169
3358          169
3378          169
3398          170
3409          169

我希望实现的是使用for循环提取列表中每个数据帧的BIN_END_TIME变量(例如3409(的最后一个值。

我可以知道是否有人知道这样做的方法吗?非常感谢!

您可以使用sapply执行此操作。如果您的数据帧列表名为list_df:

result <- sapply(list_df, function(x) tail(x$BIN_END_TIME, 1))
#Also : 
#result <- sapply(list_df, function(x) x$BIN_END_TIME[nrow(x)])

使用for循环:

result <- numeric(length(list_df))
for(i in seq_along(list_df)) {
result[i] <- tail(list_df[[i]]$BIN_END_TIME, 1)
}

我们可以使用lapply

result <- unlist(lapply(list_df, function(x) tail(x$BIN_END_TIME, 1)))

最新更新