1
我有一些JSON響應將Inf/-Inf/NaN編碼爲字符串,因此它返回的JSON數組看起來像[1.0, "Infinity", 2.0]
。我使用JSON庫解析這個結果,最終得到一個看起來像list(1.0, "Infinity", 2.0)
的列表,我想將它轉換爲list(1.0, Inf, 2.0)
,出於性能原因,我需要使用Rcpp。這裏是我試圖做的代碼,但我似乎無法得到RCPP不要對我大喊大叫約將字符串版本的「Infinity」轉換爲Rcpp中的數字
library(Rcpp)
cppFunction('
NumericVector convertThings(List data) {
const size_t num_rows = data.size();
NumericVector rv(num_rows);
for (size_t i = 0; i < num_rows; ++i) {
if (as<String>(data[i]) == "Infinity") {
rv[i] = R_PosInf;
} else {
rv[i] = as<double>(data[i]);
}
}
return rv;
}
')
convertThings(list('Infinity', 1.0))
# expected output c(Inf, 1.0)
我看到的錯誤Error: not compatible with requested type
。非常感謝幫助!
正是我在找的東西,非常感謝德克! – sergeygoder