存储在列表

时间:2016-08-04 09:12:27

标签: r list subset

我有一个包含16个数据框的列表,所有这些数据框只有两列

DateTime    Value 
2009-05-31    100
2009-06-30    200
2009-07-31    300 
and so on 

我想根据日期过滤器对列表中的所有数据框进行子集化。我尝试了以下代码,但它没有用完

> c <- function(df) {
+ within(df, DateTime >= "2009-06-30")
+ }
> train_data <- lapply(my_data, c)

我错过了什么吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

尝试此操作(假设数据框中的Datetime列格式为Dates):

c <- function(df){
df[df$DateTime >= as.Date("2009-06-30"),]
}

train_data <- lapply(my_data, c)

或者如果您想使用with

c <- function(df){
with(df, df[DateTime >= "2009-06-30",])
}

答案 1 :(得分:0)

没关系,我找到了答案

training_data <- lapply(my_data, subset, DateTime >= "2009-06-30")

答案 2 :(得分:0)

您有一个子集方法:

new_df = subset(df, DateTime > "2009-06-30")

输出将是:

    DateTime Value
3 2009-07-31   300