2013-02-21 2 views
2

Я совершенно новичок в R, поэтому извиняюсь, если это простой вопрос. Я попробовал Google, но не смог найти примеры, которые казались полностью релевантными (в большинстве примеров есть только один аргумент функции).Функция всегда возвращает числовое значение (0)

У меня есть простая функция, представляющая основную линейную модель в 2-х измерениях:

y <- function(x, w) { 
    temp <- w[0] + x*w[1] 
    return(temp) 
} 

Когда я использую его так, как я ожидал, я получаю:

> y(1,c(-0.3,0.5)) 
numeric(0) 

При попытке неправильного ввода , то же самое!

> y(1,2) 
numeric(0) 

В конечном счете, моя цель - иметь вектор X, который может быть передан как аргумент. Например:

> y(c(1,2,3,4),c(1,2)) 
+5

Векторы в R являются 1-индексированными, а не 0-индексированными. – joran

+0

Чтобы быть более явным, пока это не будет закрыто, первый элемент вектора будет выбран как 'w [1]' not 'w [0]'. – joran

+2

одной из более эклектичных особенностей R является то, что она не через ошибку для вектора [0]. Это довольно легко укусить. – RyanGrannell

ответ

2

Как указано joran, это связано с тем, что векторы в R 1-индексируются.

Спасибо, joran! (И doh!)

Смежные вопросы