【发布时间】:2013-11-21 19:44:01
【问题描述】:
我有一个如下所示的数据框:
index ID date Amount
2 1001 2010-06-08 0
21 1001 2010-10-08 10
6 1002 2010-08-16 30
5 1002 2010-11-25 20
9 1003 2010-01-01 0
8 1003 2011-03-06 10
12 1004 2012-03-12 10
11 1004 2012-06-21 10
15 1005 2010-01-01 30
13 1005 2010-04-06 20
我想对这些数据进行子集化,以便我有新的数据帧,每个 ID 一个,像这样
index ID date Amount
2 1001 2010-06-08 0
21 1001 2010-10-08 10
和
6 1002 2010-08-16 30
5 1002 2010-11-25 20
等等。
我不需要保存新的数据框,而是用它来执行一些基本的计算。此外,我想在包含超过 10000 个 ID 的整个表上执行此操作,因此需要循环。我试过这个
temp <- data.frame(Numb=c(),Dt=c(),Amt=c())
for (i in seq_along(stNew$ID)){
temp[i,] <- subset(stNew, stNew[i,]==stNew$ID[i])
}
但这没有用。有什么建议吗?
【问题讨论】:
-
Henrik - 谢谢。事实上,我确实搜索并找到了一对非常有用的。也感谢您的链接。
-
太棒了!因此,无需拆分或子集您的数据框。