R 数据帧中每行的矩阵乘法
这应该是基本的,但我无法理解。 我有一个数据帧,希望创建一个新变量,作为每行与预先指定的向量的矩阵乘法R 数据帧中每行的矩阵乘法,r,matrix,dplyr,matrix-multiplication,R,Matrix,Dplyr,Matrix Multiplication,这应该是基本的,但我无法理解。 我有一个数据帧,希望创建一个新变量,作为每行与预先指定的向量的矩阵乘法 library(dplyr) data <- data.frame(matrix(1:6,2)) vector <- c(1,0,1) ##NOT WORKING data <- data %>% mutate(multiplication = as.numeric(data[,]) %*% vector) mm <- function(x,y){ n
library(dplyr)
data <- data.frame(matrix(1:6,2))
vector <- c(1,0,1)
##NOT WORKING
data <- data %>%
mutate(multiplication = as.numeric(data[,]) %*% vector)
mm <- function(x,y){
n <- as.numeric(x)
m <- n %*% y
print(as.numeric(m))
}
##NOT WORKING
data$mm <- lapply(data[,], function(x) mm(x,vector))
图书馆(dplyr)
数据您可以使用应用:
data%>%变异(乘法=应用(,1,函数(x)x%*%向量))
#>x1x2x3乘法
#> 1 1 3 5 6
#> 2 2 4 6 8
您可以使用应用
:
data%>%变异(乘法=应用(,1,函数(x)x%*%向量))
#>x1x2x3乘法
#> 1 1 3 5 6
#> 2 2 4 6 8
一个选项可以是:
data %>%
rowwise() %>%
mutate(multiplication = sum(c_across(everything()) * vector))
X1 X2 X3 multiplication
<int> <int> <int> <dbl>
1 1 3 5 6
2 2 4 6 8
数据%>%
行()
变异(乘法=和(c_横跨(一切())*向量))
x1x2x3乘法
1 1 3 5 6
2 2 4 6 8
一个选项可以是:
data %>%
rowwise() %>%
mutate(multiplication = sum(c_across(everything()) * vector))
X1 X2 X3 multiplication
<int> <int> <int> <dbl>
1 1 3 5 6
2 2 4 6 8
数据%>%
行()
变异(乘法=和(c_横跨(一切())*向量))
x1x2x3乘法
1 1 3 5 6
2 2 4 6 8
使用作为.matrix
图书馆(tidyverse)
数据x1x2x3乘法
#> 1 1 3 5 6
#> 2 2 4 6 8
由(v0.3.0)于2020年12月11日创建使用作为.matrix
图书馆(tidyverse)
数据x1x2x3乘法
#> 1 1 3 5 6
#> 2 2 4 6 8
由(v0.3.0)于2020年12月11日创建,我们可以使用crossprod
frombase R
data$multiplication <- crossprod(t(data), vector)[,1]
我们可以使用crossprod
frombase R
data$multiplication <- crossprod(t(data), vector)[,1]
@基R中的user20650 so:data$multiplication@user20650基R中的so:data$multiplication