【发布时间】:2012-12-15 06:36:12
【问题描述】:
我需要对由ID 识别的车辆进行一些分析。此分析的结果将包括一些numeric、factor 和logical 信息。分析中用到的所有数据都在一个数据框中,所以函数是这样的:
Results <- by(Data, Data$ID, Function)
Function 旨在提供如下输出:
Function <- function(DF) {
## Do stuff...
return(c(23.2, as.factor("SuperFast"), TRUE))
}
到目前为止,这种方法的优点在于,除了速度非常快(大约 1 分钟,for 循环需要几个小时)之外,还可以通过以下方式轻松输入data.frame 格式:
as.data.frame(do.call("rbind", Results))
当然,Function 中的c 和 "rbind" 中的do.call 将所有内容强制转换为相同的对象类型。为了解决这个问题,我一直在让Function 吐出一个字符向量(比如as.character(23.2, "SuperFast", TRUE),然后在最后手动更改对象类型。
是否有 (1) 一种方法可以在具有不同对象类型的数据框中返回 row,或者 (2) 比使用 by 和 c(对于行)更好的方法?
只是为了好玩,这里有一些可以用于数据的东西:
Data <- data.frame(ID=c(1,2,2,3))
【问题讨论】:
标签: r