Интересно, как я могу создать числовой вектор нулевой длины в R?
Интересно, как я могу создать числовой вектор нулевой длины в R?
Ответы:
Если вы прочтете справку для vector
(or numeric
or logical
or character
or integer
or double
, 'raw' or complex
etc), вы увидите, что все они имеют length
(или length.out
аргумент, который по умолчанию равен 0
Следовательно
numeric()
logical()
character()
integer()
double()
raw()
complex()
vector('numeric')
vector('character')
vector('integer')
vector('double')
vector('raw')
vector('complex')
Все возвращают векторы длины 0 соответствующих атомарных режимов.
# the following will also return objects with length 0
list()
expression()
vector('list')
vector('expression')
Предположим, вы хотите создать вектор x, длина которого равна нулю. Пусть теперь v - любой вектор.
> v<-c(4,7,8)
> v
[1] 4 7 8
> x<-v[0]
> length(x)
[1] 0
Это не очень красивый ответ, но я использую его для создания векторов нулевой длины:
0[-1] # numeric
""[-1] # character
TRUE[-1] # logical
0L[-1] # integer
Литерал - это вектор длины 1, который [-1]
удаляет первый элемент ( единственный элемент в данном случае) из вектора, оставляя вектор с нулевыми элементами.
В качестве бонуса, если вы хотите сингл NA
соответствующего типа:
0[NA] # numeric
""[NA] # character
TRUE[NA] # logical
0L[NA] # integer
numeric(0)
.