私はもう一度レガシーRコードを見て、ユーザーの心を読もうとしています。 Pythonスタイルを使用しているので、空のRベクトルを定義し、forループを使用して結果をベクトルに追加するように見えます。空のベクトルにdata.tableの行を追加する---正しいdata.tableのことを行う
empty_vector <- c()
for(i in 1:nrow(dtable))
{
empty_vector <- append(empty_vector,strsplit(dtable[i,6],":")[[1]][2])
}
は、これは+ 500Kの行で、かなり大規模なdata.table
です:
library(data.table)
dtable = read.table("path/filename.txt",header=TRUE,sep="\t",check.names=FALSE)
このdata.tableを定義した後、ここにここで行われているものである たものです。
(1)forループは使用しないでください。これを行うdata.table方法があります。
(2)したがって、空のベクトルを定義し、このベクトルに結果を追加することはRではありません。これに対する「Rアプローチ」とは何ですか?
編集:私はプログラマがPythonでこのような何かを考えていたと思う:
empty_list = [] ## equivalent to R vector
for i in range(10):
empty_list.append(i)
print(empty_list) ## now [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
がどのように誰かが、これはRであり、我々はdata.tableの行を反復されている与えられた、このような何かをしますか?
は私に壊れたコードのように見えるとなります。サンプルデータを入力してください。しかし、これをループして追加する必要はありません。追加は非常に遅いです。 – CCurtis
@CCurtis私の編集を参照してください。彼らがやろうとしていることは、Pythonの空のリストに項目を繰り返して追加するのと似ていると思います。 – ShanZhengYang