По сути, я хочу создать функцию, которая берет списки списков списков ... где в конечном итоге самые дальние вложенные списки будут иметь вектор как один элемент, а каждый список, вложенный в него, будет иметь вектор в качестве последнего элемента.Рекурсия в R, функция не работает и не знаю почему
Что я хочу, чтобы функция выполнялась, чтобы посмотреть на каждый из нижних уровней вложенных элементов и подсчитать, сколько их есть.
Например: Say A - это список из 16 векторов, B - список из 10 векторов, C - список из 12 векторов, а D - список из 8 векторов. X - это список, содержащий A, B и вектор, а Y - список, содержащий C, D и вектор. Z - список X, Y и вектор.
Функция примет Z и даст выход 46 (16 + 10 + 12 + 8).
Вот код, я использую прямо сейчас:
listreader <- function(listoflists)
{
nlist = listoflists
ini = 0
its = 0
if(length(nlist) > 1)
{
for (i in 1:(length(nlist)))
{
listreader(nlist[[i]])
}
}
else
{
ini = ini+1
}
return(ini)
}
ITYM рекурсию, а не регресс. –
Не могли бы вы подробнее рассказать о том, почему вы хотите это сделать? У меня такое чувство, что список списков списков и т. Д. С единственным элементом в конце каждой ветви дерева не является лучшим решением, но я могу ошибаться. Кроме того, сделать ваш пример воспроизводимым также поможет. –
Можете ли вы добавить воспроизводимый пример, особенно, чтобы уточнить, что вы подразумеваете под «списком векторов» или хотя бы добавить 'str (your_list', чтобы получить структуру ваших данных. – agstudy