Coming from Python I try to get deeper into the habits and design principals of R. So this is not a homework question.
It seems usual that list() starting with index 1 and not 0.
> a = list(1,2,3)
> a[[1]]
[1] 1
But what is at index 0?
> a[[0]]
Error in a[[0]] :
attempt to select less than one element in get1index <real>
> a[0]
list()
I know that there is a difference about [] and [[]]. I don’t fully understand the difference or the design principals behind it.
Is there an PEP equivalent for R to read about design decisions?
EDIT: The "duplicate" question doesn’t fit my question and there is also no accepted answer. The answers in my question IMHO are much better.
>Solution :
When you use [[]] you are extracting the element from the list. Therefore, you will have a[[1]] = 1, but an error for a[[0]]] because there is no such element.
When you use [] in a list you are slicing (sub-setting) it. That is why a[1] = [[1]] 1 and a[0] returns an empty element (there is no zeroth list).
This is made clear by checking the class of the outputs.
class(a[[1]]) # -> numeric
class(a[1]) # -> list