我是使用R进行k-means聚类的新手,我尝试使用将两个文件聚类在一起的示例应用程序,并成功使用以下代码。但由于我使用的原始文件比这些初始测试文件大得多,下面的代码已经过了使用RAM,我认为在较大的文件上使用它是低效的。
file1 <- read.csv("//tmp//file1.txt", sep="\t", header=TRUE)
file1[is.na(file1)]<-0
file2 <- read.csv("//tmp//file2.txt", sep="\t", header=TRUE)
file2[is.na(file2)]<-0
file1_new <- cbind(file1, file_number = 1)
file2_new <- cbind(file1, file_number = 2)
total_input <- rbind(file1_new, file2_new)
myvars <- data.frame(col1 = total_input$col1, file_number = total_input$file_number)
myvars_k_means <- kmeans(myvars, 6)
myvars_k_clustered <- cbind(myvars$col1, myvars$file_number, myvars_k_means$cluster)
我遇到了具有bigkmeans功能的bigmemory和biganalytics。但我正在努力将上述内容翻译成使用bigmatrix。这是我正在处理的代码。
file1 <- read.big.matrix("//tmp//bigfile1.txt", sep="\t", header=FALSE)
file2 <- read.big.matrix("//tmp//bigfile2.txt", sep="\t", header=FALSE)
file1[is.finite(file1)] <-0
file1[is.finite(file2)] <-0
total_input <- list(file1, file2)
myvars <- cbind(total_input[,1], total_input[,2])
myvars_k_means <- bigkmeans(myvars,6)
myvars_k_clustered <- cbind(total_input[,1], total_input[,2], myvars_k_means$cluster)
将NA替换为零无效,如果忽略该步骤,则由于NA而产生单个集群。并且cbinds,列添加也不起作用。我想我错过了一些更简单的方法,但是从bigmemory / matrix文档中无法理解。 你能帮忙吗?