循环创建新的数据帧

时间:2019-08-06 14:30:07

标签: r loops dataframe

我有一个包含三列的原始数据框 df

“人”,“开始”,“结束”,其中开始 结束 在“%d。%m。%”中Y%H:%M:%S”格式。

head(df)

1 Mark 06.08.2019 00:02:56 06.08.2019 00:14:43
5 Mark 06.08.2019 00:16:31 06.08.2019 00:20:53
6 Vince 06.08.2019 00:18:28 06.08.2019 00:24:30
7   Kate 06.08.2019 00:20:26 06.08.2019 00:23:29
8   Mark 06.08.2019 00:26:34 06.08.2019 00:32:41
9 Vince 06.08.2019 00:31:13 06.08.2019 00:33:14

人有独特的价值:

people<-unique(df$Person)

people=[Mark,Kate, Vince]

所以我的目标是为那些人制作3个分离的数据框。 我正在尝试:

for (a in people){
  assign(paste("df.", a, sep = ""), subset(a,a[start],a[end]))
}

因为开始结束是原子向量

(is.atomic(...))

但是我收到一条错误消息:

Error in subset.default(a,a[start],a[end]) : 
  object 'start' not found

我想知道如何为每个具有与原始DF数据框相同列的人分隔 df 吗?

1 个答案:

答案 0 :(得分:0)

您可以将原始数据框拆分为数据框列表:

df_split <- split(df,f= df$Person)

然后可以使用例如df[["Mark"]]访问每个数据帧。这样对您有用吗?