gpt4 book ai didi

r - 将数据框中的所有列乘以单列

转载 作者:行者123 更新时间:2023-12-04 19:53:30 24 4
gpt4 key购买 nike

我知道这是一个基本问题,但找不到任何解决方案。
我想将数据帧的所有列乘以单列。

df1<-data.frame(F1=c(1,5,8,9),F2=c(1,5,8,9),F3=c(1,5,8,9))
> df1
F1 F2 F3
1 1 1 1
2 5 5 5
3 8 8 8
4 9 9 9

C<-data.frame(C=c(2,1,2,0.5))
> C
C
1 2.0
2 1.0
3 2.0
4 0.5

我想将 df1 的每一列相乘通过 C。
我试过了:
df2<-df1[,c(1:3)]*C[,1]
df2<-df1*C
df2< df1%*%C
and
for(i in 2:length(names(b))) {
+ df2 <- C[, 1] * b[, i]
+ }

谢谢!

最佳答案

也试试

df1 * t(C)
# F1 F2 F3
#1 2.0 2.0 2.0
#2 5.0 5.0 5.0
#3 16.0 16.0 16.0
#4 4.5 4.5 4.5

当我们尝试将数据帧相乘时,它们的大小必须相同。
df1 * C

error in Ops.data.frame(df1, C) : ‘*’ only defined for equally-sized data frames


t()C转换为矩阵,即维度属性长度为 4 的向量。当我们将其与 df1 相乘时,该向量会被回收。 .

什么也可以以相同的方式工作(并且可能比转置 C 更快):
df1 * C$C

或者
df1 * unlist(C)

关于r - 将数据框中的所有列乘以单列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53705656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com