मैं आर से सी से एक चरित्र वेक्टर पास करने की कोशिश कर रहा हूं और इसे सी चरित्र सूचक के माध्यम से संदर्भित करता हूं। हालांकि, मुझे नहीं पता कि किस प्रकार का रूपांतरण मैक्रो उपयोग करना है। नीचे मेरी समस्या का वर्णन करने वाला एक छोटा सा परीक्षण है।मैं एक आर चरित्र वेक्टर को एक सी चरित्र सूचक में कैसे परिवर्तित करूं?
फ़ाइल test.c:
#include <Rinternals.h>
SEXP test(SEXP chars)
{
char *s;
s = CHAR(chars);
return R_NilValue;
}
फ़ाइल test.R:
> source("test.R")
Error in eval(expr, envir, enclos) :
CHAR() can only be applied to a 'CHARSXP', not a 'character'
कोई सुराग: आर से
dyn.load("test.so")
chars <- c("A", "B")
.Call("test", chars)
आउटपुट?
अभिव्यक्ति 'CHAR (STRING_ELT (वर्ण, 0))' मुझे केवल पहले वर्ण में एक सूचक (केवल चरित्र '\ 0') देता है। सभी पात्रों को यह पता लगाने के लिए कि मुझे पात्रों के माध्यम से पुनरावृत्ति करने की आवश्यकता है (मेरा जवाब देखें)। –