分割数据集的最佳方法

时间:2015-10-30 20:19:44

标签: r csv cluster-computing

我正在研究一种基于时间戳分割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函数来完成此操作。这给了我一个聚类图(我想),但我不知道如何将这些信息应用到实际数据中。

关于最佳方法的任何想法或想法?

1 个答案:

答案 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")
}

无论如何,这是我如何解决问题的大致轮廓。也许这会给其他人提供一些想法。