我已用C++編寫這樣的功能:發送數組R函數(C++)
extern "C"
{
void add(int* first, int* second, int *n , int* sum)
{
for (int i = 0; i< *n; i++)
{
sum[i] = first[i] + second[i];
}
}
}
和該驅動程序:
add <- function(twoColumn)
{
if(!is.data.frame(twoColumn))stop("twoColumn should be data.frame")
first <- twoColumn[1]
second <- twoColumn[2]
n <- length(first)
.C("add",first = as.integer(unlist(first)),second = as.integer(unlist(second)), n = as.integer(n),sum = as.integer(rep(0,n)))$sum
}
但R OUT放是隻爲一個數數據幀的第一行之和。
也許ñ< - nrow(第一)幫助? – Julius
什麼是「長度(第一)」?另外,嘗試'twoColumn [[1]]'等,並省略不公開,無需'as.integer(N)','因爲是N'已經的整數,'總和=整數(N)'比更有效'代表...'。 –