본질적으로, 가장 가까운 중첩 목록에 단일 요소로 벡터가있는 목록의 목록을 사용하는 함수를 설계하고 싶습니다. 중첩 된 목록에는 벡터가 마지막 요소로 포함됩니다.R에서 재귀 함수가 작동하지 않고 이유가 없습니다.
내가하고 싶은 기능은 가장 아래에있는 각 레벨의 중첩 요소를보고 얼마나 많은 요소가 있는지 계산하는 것입니다.
예를 들어, 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