矩阵和向量的 R 点积仅使用向量中的元素
R dot product of matrix and vector using only elements from vector
我确信这在 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]
x2 14
x2 14
this works
现在,我将日期字段添加到 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
Error in x %*% y : non-conformable arguments
这是一个玩具示例,但矩阵中可能有数百个不友好的日期字段,因此仅删除 anchor
将不是一个可接受的解决方案。自动删除任何问题字段可视为有效。
y 矩阵中必须只有 3 列(而不是 4 列)才能对 3 元素向量执行此操作。
在您的示例中,您可以明确指定要使用的列及其名称:
y[,c("first","second","third")] %*% x
或范围:
y[,1:3] %*% x
我确信这在 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] x2 14 x2 14
this works
现在,我将日期字段添加到 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
Error in x %*% y : non-conformable arguments
这是一个玩具示例,但矩阵中可能有数百个不友好的日期字段,因此仅删除 anchor
将不是一个可接受的解决方案。自动删除任何问题字段可视为有效。
y 矩阵中必须只有 3 列(而不是 4 列)才能对 3 元素向量执行此操作。
在您的示例中,您可以明确指定要使用的列及其名称:
y[,c("first","second","third")] %*% x
或范围:
y[,1:3] %*% x