R точка произведения матрицы и вектора, используя только элементы из вектора - PullRequest
0 голосов
/ 30 апреля 2018

Я уверен, что в R. это легко сделать. Я пытался найти точечные продукты в документации R, а также в Интернете, но безуспешно.

Как взять точечное произведение в R приведенной ниже матрицы y и именованный вектор x , используя только именованные элементы в x ?

x  <- c(first=1, second=2, third=3)
x2 <- c(first=1, second=2, third=3)
y  <- as.matrix(rbind(x2,x2))
y
y %*% x

y% *% x [1] х2 14 х2 14

это работает

Теперь я добавляю поле даты к y , и оно завершается ошибкой:

x  <- c(first=1, second=2, third=3)
x2 <- c(first=1, second=2, third=3,anchor=as.Date('2017-04-01'))
y  <- as.matrix(rbind(x2,x2))
y
y %*% x

Ошибка в x% *% y: несоответствующие аргументы

Это игрушечный пример, но у меня могут быть сотни недружественных полей даты в матрице, поэтому простое удаление anchor не будет приемлемым решением. Автоматическое удаление любых проблемных полей можно считать действительным.

1 Ответ

0 голосов
/ 30 апреля 2018

У вас должно быть только 3 столбца (вместо 4) в матрице y, чтобы выполнить эту операцию с вектором из 3 элементов.

В вашем примере вы можете явно указать столбцы, которые вы хотите использовать, с их именем:

y[,c("first","second","third")] %*% x

или с диапазоном:

y[,1:3] %*% x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...