Передайте файловое соединение из R в интерфейс .Call

Мне было интересно, можно ли создать файловое соединение в R, а затем передать это файловое соединение в функцию C, используя интерфейс R.Call. Например, рассмотрим функцию R следующим образом:

write2file <- function(object, filename, sep, ...){
        ...

        fileCon = file(filename, "a")  #created a file connection from character filename

        ...

        .Call("Cfunction", object, fileCon, ...)  #C function that takes in a file connection
}

Тогда функция C будет примерно такой:

#include <R.h>
#include <Rinternals.h>

SEXP Cfunction(SEXP object, SEXP filecon){
      ...

    *filecon_in_c =   SOMETHING(filecon);
    
    fputs(something, filecon);

      ...
}

Мы можем преобразовать целые числа R с помощью INTEGER(), числа R в удвоения с помощью REAL() или CHAR() для символьных векторов, но как насчет файловых соединений?

0 ответов

Другие вопросы по тегам