gpt4 book ai didi

r - 将数据框列中的特定值按列与向量相乘

转载 作者:行者123 更新时间:2023-12-02 08:27:05 25 4
gpt4 key购买 nike

我只是一个非常偶尔的 R 用户,这是我第一次在这里或在线其他任何地方提出有关 R 的问题,所以如果有任何不清楚的地方,我先道歉。

我有一个包含大约 100 列的数字数据框,其中每一列都有相同的数字(在本例中为数字 10),需要与数字向量中的值相乘,该值特定于每一列。我完全陷入困境,将不胜感激任何帮助。

这是一个简化的例子:

df

V1 V2 V3
1 0 0 2
2 1 0 2
3 0 0 1
4 0 0 2
5 0 0 1
6 10 0 1
7 0 0 1
8 0 0 2
9 0 10 2
10 0 0 2
11 10 0 1
12 0 0 10
13 1 2 1
14 0 0 2
15 0 0 0
16 0 1 2
17 1 0 10
18 1 1 1
19 0 0 1
20 0 0 2

相应的向量如下所示:

V

v1                 v2                 v3  
0.01256117 0.03037231 0.55444079

因此,df 列 V1 的值“10”需要乘以向量 V 的值 v1,df 列 V2 的值“10”乘以向量 V 的值 v2,等等。

非常感谢任何帮助!

最佳答案

这是一种简单的方法:

# sample data
df<-data.frame(v1=c(1:10,10), v2= c(5:13,10,14), v3=8:18)
vec=c(0.1, 0.2, 0.3) # sample vector to multiply by
df
# v1 v2 v3
#1 1 5 8
#2 2 6 9
#3 3 7 10
#4 4 8 11
#5 5 9 12
#6 6 10 13
#7 7 11 14
#8 8 12 15
#9 9 13 16
#10 10 10 17
#11 10 14 18

df2 <- t(t(df==10) * vec * t(df))
df[df==10] <- 0
df + df2
# v1 v2 v3
#1 1 5 8
#2 2 6 9
#3 3 7 3
#4 4 8 11
#5 5 9 12
#6 6 2 13
#7 7 11 14
#8 8 12 15
#9 9 13 16
#10 1 2 17
#11 1 14 18

关于r - 将数据框列中的特定值按列与向量相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226377/

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