Чтобы решить ваш первый вопрос
Есть ли способ, чтобы создать вектор с помощью буквального обозначения, то есть без с использованием функции и т.д.?
вы можете создать вектор таким образом, что-то мимики вашего примера использования «буквальное обозначения» выше; но технически (примерно) все в R является вызовом функции, даже индексирование скобок [
и назначение объекта <-
. Например, вы могли бы сделать что-то вроде
x <- NULL
x[1:4] <- 1:4
##
> x
[1] 1 2 3 4
, но затем снова [<-
и :
являются функциями - смотрите в файле справки, введя ?"[<-"
или ?"["
. Независимо от того, является ли это «более неудобным», чем ваша альтернатива, конечно, субъективна, но как только вы привыкли к R-языку, вы, скорее всего, не подумаете. Лично я предпочитаю его чем-то вроде x[1, 2, 3, 4]
, который вы можете сделать в Python, Julia и т. Д. Несмотря на это, ваш первый пример недействителен для vector
, потому что в синтаксисе R вы используете (n-1) запятые для представления (n) измерений (в таких случаях). Например, вы можете создать 3-мерный массив, такой как
Y <- array(1:27,dim=c(3,3,3))
> Y
, , 1
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
, , 2
[,1] [,2] [,3]
[1,] 10 13 16
[2,] 11 14 17
[3,] 12 15 18
, , 3
[,1] [,2] [,3]
[1,] 19 22 25
[2,] 20 23 26
[3,] 21 24 27
and access elements as
> Y[1,1,3]
[1] 19
> Y[1,1,1]
[1] 1
> Y[1,2,3]
[1] 22
, но, очевидно, это не касается векторов (одномерных). К вашему другому вопросу о скорости, проверить это невозможно, потому что ваш предложенный синтаксис недействителен.
Не уверен, что это так медленно о 'с (1,4,6,8)' - это * один * дополнительный символ для ввода. –
Ответ - нет. Все, что вы делаете, это функция в R. Как вы думаете, '<-'? –
не уверен относительно downvotes. Не много исследований, а часть «почему» немного раздражает, но я думаю, что это интересный («полезный») вопрос. –