I need to write a C / C ++ function that will retrieve the column names of an R list.
From R, I want to do the following.
> dyn.load("R_list.dll")
> x = list(param1="value1", param2="value2", param3="value3")
> .Call("func", x)
and as an output I want to see "param1" "param2" "param3"how a names(x)function of R
> names(x)
[1] "param1" "param2" "param3"
In my cpp file, I have the following
#include <R.h>
#include <Rinternals.h>
#include <Rdefines.h>
extern "C" __declspec( dllexport ) SEXP func(SEXP list)
{
try
{
if (isNewList(list))
{
int n = length(list);
printf("%d\n", n);
for (int i=0; i<n; ++i)
printf("%s\n", CHAR(STRING_ELT(VECTOR_ELT(list, i), 0)));
}
else
{
throw std::exception("'list' variable must be a list!");
}
}
catch(const std::exception& ex)
{
printf("Exception was thrown: %s\n", ex.what());
}
return R_NilValue;
}
How to get column names, not values, from C / C ++ code?
source
share