首页 > 解决方案 > 在循环中创建新的数据框

问题描述

我得到了一个包含三列的原始数据框df :

"Person","start","end",其中startend采用 "%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]))
}

因为startend是原子向量

(is.atomic(...))

但我收到一条错误消息:

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

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

标签: rloopsdataframe

解决方案


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

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

然后,您可以使用例如访问每个数据框df[["Mark"]]。那对你有用吗?


推荐阅读