如何检查R流包中的流结束
我是R编程新手。我面临一个与流相关的问题。 我正在从文本文件读取数据流文件。当一条小溪到达小溪的尽头时。我无法处理这个问题如何检查R流包中的流结束,r,data-stream,R,Data Stream,我是R编程新手。我面临一个与流相关的问题。 我正在从文本文件读取数据流文件。当一条小溪到达小溪的尽头时。我无法处理这个问题 Micro_cluster<-function(data_stream) { list_counter<-1; micro_clusters<-list(); while(TRUE) { points<-DSD_Wrapper(get_points(data_stream,n=1000)); if(!
Micro_cluster<-function(data_stream)
{
list_counter<-1;
micro_clusters<-list();
while(TRUE)
{
points<-DSD_Wrapper(get_points(data_stream,n=1000));
if(!points)
{
print("End of Stream");
}
else
{
mcluster<-DSC_DenStream();
cluster(mcluster,points,n=1000);
micro_clusters[list_counter]<-list(mcluster);
list_counter<-list_counter+1;
rm(mcluster);
}
}
rm(list_counter);
}
Micro_cluster不一定能回答特定的问题而不看到您试图输入的内容,但是-您知道您实际上并没有结束WHILE循环,对吗?它将永远迭代。大概你想要的是
#Set an object that handles the boolean for the while loop, so that you can actually kill said loop
while_check <- TRUE
while(while_check)
{
points<-DSD_Wrapper(get_points(data_stream,n=1000));
if(!points)
{
print("End of Stream");
#If there aren't any entries left, change that value so that the loop stops.
while_check <- FALSE
}
else
{
mcluster<-DSC_DenStream();
cluster(mcluster,points,n=1000);
micro_clusters[list_counter]<-list(mcluster);
list_counter<-list_counter+1;
rm(mcluster);
}
}
#为while循环设置一个处理布尔值的对象,这样您就可以实际终止所述循环
同时检查我的问题陈述
我有一组与纽约数据集相关的健康数据。
文件结构,例如
每日个案的经度
所以创建了一个文件,记录大约17699997条。因此,我必须使用流包创建一个流,从文件中提取1000个数据。然后我将对在线集群应用Denstram()算法和相同的1000点get,并应用离线算法,如K-means,DBSACN
我想从文件apply online和offline cluster中获得1000分。老化过程需要1000分钟,直到流结束
因此,我创建了以下代码。但在其中我无法找到河流的尽头
但我想通知用户,流已经结束了。
两个过程
在线过程
脱机进程
Denstream\u dbs实际上我从stream中得到了1000点。但我想在结束StreamPoints之前通知我您收到的错误消息是什么?而且,您确定在最后一次迭代中,流中还有1000个点吗?如果没有可复制的示例(换句话说,生成此错误的示例数据集),调试会有点困难。文件结构,如>经度,因此创建的一个文件中包含17699997条左右的记录。因此,我必须使用流包创建一个流,从文件中提取1000个数据。然后我将对在线集群应用Denstram()算法和相同的1000点get,并应用离线算法,如K-means,DBSACN。我想从文件apply online和offline cluster中获得1000分。在流即将结束之前,老化时间为1000。但我想通知用户流已结束。我无法通知。我指的是一个实际的示例数据集;)。你应该编辑你的问题并把这些信息放进去。
40.00 -73.25 1 1
Denstream_Dbscan<-function(Wrapper_Data_Stream)
{
i<-1;
while(TRUE)
{
# online process(micro cluster)
start_time<-Sys.time();
print(paste("Start online Process ",i," iteration",Sys.time()));
dstream_micro<-DSC_DenStream(epsilon=0.01,initPoints=200,minPoints=500);
system.time({
cluster(dstream_micro,Wrapper_Data_Stream,n=1000,verbose=TRUE);
})
# print(paste("center of cluster=",get_center(dstream_micro)));
print(paste("no of micro cluster=",nclusters(dstream_micro,type="auto")));
jpeg(paste("Micro Cluster(Online)_",i,".jpeg"));
plot(dstream_micro,dsd=Wrapper_Data_Stream,pch=c(1,2),col_points="red",col_clusters="green",xlab="latitude",ylab="longitude", main=paste("TimeTaken=",start_time-end_time),sub=paste("micro cluster:",Sys.time()),col.main="red",col.sub="black");
print(paste("End online Process for ",i," iteration",Sys.time()));
dev.off();
# offline process (macro cluster)
print(paste("Start offline Process ",i," iteration",Sys.time()));
start_time<-Sys.time();
dbscan_macro<-DSC_DBSCAN(eps=0.1)
system.time({
recluster(dbscan_macro,dstream_micro);
})
print(paste("no of macro cluster=",nclusters(dbscan_macro)));
# print(paste("center of cluster=",get_center(dstream_micro)));
end_time<-Sys.time();
jpeg(paste("Macro Cluster(offline)_",i,".jpeg"));
plot(dbscan_macro,Wrapper_Data_Stream,pch=c(1,2),col_points="grey",col_clusters="blue",xlab="latitude",ylab="longitude",main=paste("TimeTaken=",start_time-end_time),sub=paste("macro cluster:",Sys.time()),col.main="red",col.sub="black");
dev.off();
print(paste("End Offline Process for ",i," iteration",Sys.time()));
i<-i+1;
}
}