我有一个数据帧,我想把它分成两个不同的数据框,一个在某个日期之前,一个在日期之后。哪个是最好的代码,我已经尝试过拆分代码,但似乎无法让它工作?
答案 0 :(得分:2)
喜欢这个吗?
df <- data.frame(date=as.Date("2013-01-01")+1:365, x=1:365)
lst <- split(df,df$date<as.Date("2013-06-01"))
这会将df分成2个数据帧,一个包含2013-06-01之前的日期,另一个包含后续日期。您可以访问lst[1]
和lst[2]
答案 1 :(得分:1)
让我告诉您如何使用data.table
非常快速轻松地完成此操作。
require(data.table)
my_df = data.table(a=seq.Date(from=as.Date("2012-01-01"), by=1, len=10),b=10:1)
N = as.Date("2012-01-05") #where you want to split
df1 = my_df[a<N]
df2 = my_df[a>=N]