【发布时间】:2014-03-29 21:47:12
【问题描述】:
我有一个数据框,我想将其拆分为两个不同的数据框,一个在某个日期之前,一个在该日期之后。哪个是最好的代码,我尝试了拆分代码但似乎无法让它工作?
【问题讨论】:
-
您能与我们分享您的数据框吗?试试
dput(df[1:10, ]),其中df是包含数据框的变量的名称。
我有一个数据框,我想将其拆分为两个不同的数据框,一个在某个日期之前,一个在该日期之后。哪个是最好的代码,我尝试了拆分代码但似乎无法让它工作?
【问题讨论】:
dput(df[1:10, ]),其中df 是包含数据框的变量的名称。
像这样?
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] 访问数据框
【讨论】:
df$dates <- as.Date(df$dates).
df$dates 是日期还是字符串?尝试 df$dates
让我向您展示如何使用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]
【讨论】: