R 如何按日期拆分数据帧并组装一组新的数据帧?

R 如何按日期拆分数据帧并组装一组新的数据帧?,r,list,loops,dataframe,coordinates,R,List,Loops,Dataframe,Coordinates,我有以下格式的数据作为数据框: * Date Lat Long ID * May 4 30 31 1 * May 4 30 31 2 * May 4 30 31 3 * May 5 30 31 4 * May 5 31 31 5 * May 5 31 31 6 * May 6 31 31 7

我有以下格式的数据作为数据框:

* Date    Lat    Long      ID
* May 4    30      31      1 
* May 4    30      31      2
* May 4    30      31      3
* May 5    30      31      4
* May 5    31      31      5
* May 5    31      31      6
* May 6    31      31      7
* May 6    33      31      8 
* May 6    31      31      9
我希望能够按日期提取数据帧,并从“化石”包中应用以下函数

create.lats(x, loc="locality", long="longitude", lat="latitude")
我使用split按日期分解数据,但这会将所有内容转换为列表

split(mydata, with(mydata, (date)), drop = TRUE)
然后,我需要将每个单独的列表转换回具有原始标题的数据帧


我想我需要一个循环来做这个?不幸的是,我被困在这里,因此非常感谢任何帮助

这里是create.labs函数,它逐因子应用于数据帧,并返回到由原始数据帧和新输出组成的数据帧中:

rm(list=ls())
require(fossil)
df = data.frame("Date"=sample(LETTERS[1:4],100,replace=TRUE), 
                "Lat"= sample(30:35,100,replace=TRUE),
                "Long"= sample(30:35,100,replace=TRUE),
                "ID" = sample(1:5,100,replace=TRUE) )
endresult = do.call("rbind",by(df, df$Date, 
                              function(x) 
                              { data.frame(cbind(x,create.lats(x,loc="Date", long="Long", lat="Lat")),stringsAsFactors=F) } ))
rownames(endresult)=NULL

您还可以使用plyr软件包中的
ddply
执行此操作。我建议在您的原始问题中使用
dput
,以便于人们查看您的数据

你好,汉斯·罗格曼,谢谢你的回复。我尝试了你的代码,但我得到了错误:无法将类“函数”强制为数据。框架你一定错过了一个
或其他什么,我刚刚做了一个复制粘贴,它成功了。尝试复制粘贴代码。如果它对你的数据不起作用,请给我们输出
dput(示例数据)
,以查看你的数据。