Як створити числовий вектор нульової довжини в R


Відповіді:


112

Якщо прочитати довідку vector(або numericчи logicalабо characterчи integerабо double, «сирі» або complexт.д.) , то ви побачите , що всі вони мають 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')

1
Я перепрошую за голос проти; це було абсолютно випадково, і я лише щойно помітив, що це сталося. Це не дасть мені змінитися. Вибачте.
Стюарт Р. Джефферіс

1
І якщо порожній вектор призначений для зберігання дат, що б ви використовували?
Зельбінян

@Zelbinian Це курйоз. Чого ви намагаєтесь досягти цим?
BroVic


4

Припустимо, ви хочете створити вектор x, довжина якого дорівнює нулю. Тепер нехай v - будь-який вектор.

> v<-c(4,7,8)
> v
[1] 4 7 8
> x<-v[0]
> length(x)
[1] 0

1
Я не знаю, що там відбувається. Знову моя відповідь - позначка. Чому ??? Я хочу знати пояснення. Хто-небудь може дати мені відповідь, чому моя відповідь відмічається?
Мд. Сахідул Іслам

Ви берете довжину векторного елемента.
upInCloud

2
Довжина - це доведено, що числовий вектор (тут x) має вектор нульової довжини. І х-вектор створюється з будь-якого іншого вектора. Отже, х - шуканий вектор нульової довжини. Також вам слід чітко перевірити заголовок проблеми? @ShaaradDalvi
Md. Sahidul Islam

3

Це не дуже гарна відповідь, але саме це я використовую для створення векторів нульової довжини:

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.