を全体C++のスクリプトを実行し、あなたのC++コンパイラ
g++ imtd.cpp -o imtd
生産実行でそれをコンパイルして、入力ファイルを生成するRプログラムを作成したいです、edgelist.txt
は、R shell
コマンドを使用して実行可能ファイルを実行してに戻って、出力ファイルedgelist-out.txt
を読む:あなたはこのためにRcppを必要としない
shell("imtd edgelist")
# read edgelist-out.txt into R
# - the first field of the first line contains the number of triangles
# - lines containing a comma have 3 fields separated by one or more punctuation characters
# - there are some class counts at the end which we recompute rather than read
L <- readLines("edgelist-out.txt")
no.of.triangles <- read.table(text = L, nrow = 1)[[1]]
# extract lines with a comma, replace punctuation with space & create 3 column data frame
DF <- read.table(text = gsub("[[:punct:]]", " ", grep(",", L, value = TRUE)))
# rather than read in the class counts compute them from DF
tab <- table(DF$V3) # table of class counts
。上記のことは、要求された通り、入力ファイルと出力ファイルのフォーマットのみを知っているブラックボックスとしてファイルを扱うことを可能にする。
が優れています。どうもありがとう。私があなたの答えを受け入れるようになった後、明日の朝にこの最初のことを試してみましょう。 – Antoine
もちろんこれはうまくいきますが、外部実行ファイルを呼び出すことは最もコストがかからず効率が悪いフォームです。それがあなたのために十分であれば、うまくいけば - それ以外の場合は、コードを呼び出し、Rcppはインターフェースを提供します。 –