■
unique関数を使い,Heaps則をRで描く.
uniqueは与えられたベクトルから,重複しない要素だけ抜き出すので,
uniqueで抜き出した要素数をlengthで数えれば,Heaps則を描くことができる.
ただし,時間がかかる.
N <- 20000 DW <- 5000 doc <- sample(DW,N,replace=TRUE) #write.table(z,"doc_power.txt",append=FALSE,col.names=FALSE,row.names=FALSE,quote=FALSE) heaps <- as.vector(NULL) for(i in 1:N){ heaps[i] <- length(unique(doc[1:i])) }
でも,アルゴリズムの工夫でもっと高速できそう.
Rの場合,m[0]というのは存在できない.m[1]から代入する.