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