我正在研究一种基于时间戳分割CSV文件中数据的方法。
例如,对于给定的对象ID,检查每个条目的日期,看它是否在给定的允许范围内。因此,如果表中的一组行是:
OBJECT ID - Info - Date
obj1 xyz 1/1/12
obj1 xyw 1/2/12
obj1 cya 1/3/12
obj1 abc 2/1/12
...
在此示例中,第四个条目远远超出了其他条目所在的时间区域。因此,我希望的行为是脚本将该条目分配给新对象,比如说' obj2&# 39;例如,它与自己的集群中的数据分开。请注意,这将应用的数据集有点大,至少在成千上万,所以我不知道手动算法是否足够快。
我目前正在使用R来尝试使用FPC包中的PAM和PAMK函数来完成此操作。这给了我一个聚类图(我想),但我不知道如何将这些信息应用到实际数据中。
关于最佳方法的任何想法或想法?
答案 0 :(得分:0)
我使用以下步骤找出了解决方案:
// Convert the timestamps to milliseconds
newData <- as.POSIXct(data$date, format="date_format_here")
// Split the data using the object ID as the parameter
splitData <- split(data, f=data$id)
// Iterate over the split sessions, concatenating the cluster IDs as it goes using paste
for each {
pamk.result <- pamk(splitData[[i]][dataColumnIndex]
newData[i,1] <- paste(data[i,1],
pamk.result$pamobject$clustering[[x]],
sep="delimiter_here")
}
无论如何,这是我如何解决问题的大致轮廓。也许这会给其他人提供一些想法。