Изменение элемента списка в списке списка.
К сожалению, я не смог найти ответ на свой вопрос на форуме.
Используя rcpp, я хочу напрямую изменить элемент списка в списке. У меня есть следующий подход:
// [[Rcpp::export]]
void test(){
Environment env = Environment::global_env();
List outerList = env["ListR"];
List innerList = polymeraseFlagList[0];
outerList((1)) ) "test"; // correctly changing inner list
CharacterVector innerStr = innerList[1]; // correctly access to inner list element
}
Однако я могу изменить только полный список [i], а не один элемент: list [[i]] or list [i][j]
.
outerList[i][j] = "new inner list element"; // not working
outerList[[i]] = "new inner list"; // not working
Я могу извлечь внутренний список, но здесь я изменяю только вновь созданный список, а не старый список. Для меня важно изменить список в R Workspace напрямую. Конечно, я мог бы изменить только что созданный список, а затем назначить его старому. Однако я надеюсь, что здесь есть более элегантное решение.
Я также пытался объявить список перед его назначением, чтобы у меня уже был вложенный список, к которому я могу обращаться, как обычно. К сожалению, это не сработало.
List outerList = List::create(Named("lst")); // not working
В конце я хочу, чтобы было возможно следующее (измените переменную непосредственно в рабочей области R):
// [[Rcpp::export]]
void test(){
Environment env = Environment::global_env();
List outerList = env["ListR"];
CharacterVector innerStr = outerList[i][j];
CharacterVector innerList = outerList[[i]]
innerList[i][j] = "new String";
}
Было бы здорово, если бы кто-то мог мне помочь.
Большое спасибо:)