Подтвердить что ты не робот

Как создать числовой вектор нулевой длины в R

Интересно, как я могу создать числовой вектор нулевой длины в R?

4b9b3361

Ответ 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