基于循环中当前数据帧的子集创建新的重命名数据帧

问题描述 投票:0回答:1

我正在处理大约400个数据帧,因此我需要能够在类似循环的过程中完成此操作。

我想通过基于时间点选择行的子集来创建所有数据帧的副本,我可以一次手动执行此操作,但无法弄清楚如何循环它。我所有的数据框当前都在列表中。理想情况下,我希望通过在原始名称上添加一个小字符串来重命名新的数据帧,即df是原始名称,而df_t是已创建的子集。如果可以将所有这些数据框副本一起放到一个列表中,这也将非常有帮助。

我当前适用于单个数据帧的代码:

df_t <- with(df, df[hour(columnname) > 5 | hour(columnname) <20,])
r loops dataframe
1个回答
0
投票

您可以使用适用于lapply内部数据帧列表中的一个数据帧的相同代码。假设您存储所有数据帧的列表称为list_df

library(lubridate)
out <- lapply(mget(list_df), function(df) subset(df, hour(columnname) > 5 | hour(columnname) <20))

如果要命名列表中的每个数据框,则可以执行

names(out) <- paste0("df_t", seq_along(out))
© www.soinside.com 2019 - 2024. All rights reserved.