R 我想使用数据帧中的变量值创建一个向量 data
我们可以使用R 我想使用数据帧中的变量值创建一个向量 data,r,R,我们可以使用crossprod(如果我们需要相乘然后求和) 如果是,则只需乘以对应的向量列即可 crossprod(t(data[-1]), 2:5) 或使用mapply sweep(data[-1], 2, 2:5, "*") 您希望将矩阵的矢量化点积乘以向量: mapply(`*`, data[-1], 2:5) 由于您还希望传播您的cust\u id列,因此最简单的方法是切掉输入数据帧的cust\u id列,然后将其单独返回到结果中: as.matrix(data[,c('a','
crossprod
(如果我们需要相乘然后求和)
如果是,则只需乘以对应的向量列即可
crossprod(t(data[-1]), 2:5)
或使用
mapply
sweep(data[-1], 2, 2:5, "*")
您希望将矩阵的矢量化点积乘以向量:
mapply(`*`, data[-1], 2:5)
由于您还希望传播您的cust\u id
列,因此最简单的方法是切掉输入数据帧的cust\u id
列,然后将其单独返回到结果中:
as.matrix(data[,c('a','b','c','d')]) %*% c(2,3,4,5)
[,1]
[1,] 125
[2,] 250
[3,] 375
[4,] 500
df.out#######我正在寻找一个函数,它可以调用a、b、c、d的值,并将###乘以各自的值,然后存储在该向量中##例如:当我将cust#u id调用为4时,我应该得到一个如下所示的向量####我想我需要一个输入值为cust#u id的函数。我发现很难理解你的问题。请阅读:。作为一个开始,你可以考虑重新打开你的问题,在评论中添加信息。理想情况下,您可以定义您的输入和所需的输出。有点不清楚。但是如果你想要一个向量,你可以使用和(data,c(a*2,b*3,c*4,d*5))
或者如果你想将列相乘,那么和(data,cbind(a*2,b*3,c*4,d*5))
(将cbind更改为dataframe以满足你的需要)Hi@KoenV&@user20650抱歉我的问题不清楚,我对它做了更改@user20650通过对您的代码进行一些小的更改,帮助我得到了答案>非常感谢您想要将矩阵的矢量化点积乘以矢量。您还希望传播您的cust\u id
列:最简单的方法是将其切掉,然后将其单独绑定回结果中。在数据
中有一个明确的cust_id
列实际上让你的生活更加艰难;如果它只是一个行索引,它会被自动处理。嗨,akrun,很抱歉我的问题不清楚。我做了一些修改。请看一看。
mapply(`*`, data[-1], 2:5)
as.matrix(data[,c('a','b','c','d')]) %*% c(2,3,4,5)
[,1]
[1,] 125
[2,] 250
[3,] 375
[4,] 500
df.out <- data.frame(cust_id = data[,'cust_id'],
result = as.matrix(data[,c('a','b','c','d')]) %*% c(2,3,4,5))
cust_id result
1 1 125
2 2 250
3 3 375
4 4 500
5 5 625