gpt4 book ai didi

R将列乘以第二个数据框中的值

转载 作者:行者123 更新时间:2023-12-05 01:47:50 26 4
gpt4 key购买 nike

我有两个数据框:df1

plot   grass moss   rock    other     stuff  
a 4 0 0 text 3
b 2 2 3 text 4
c 10 0 0 text 0
d 3 1 0 text 9

和df2

Cover  value
grass 5
moss 2
rock 3

我想将 df1 中的值乘以 df2 中的相应值。该解决方案应该适用于大型数据集。

结果df3

plot  grass moss    rock    
a 20 0 0
b 10 4 9
c 50 0 0
d 15 2 0

最佳答案

您的数据:

df1 <- read.table(
text =
"plot grass moss rock other stuff
a 4 0 0 text 3
b 2 2 0 text 4
c 10 0 0 text 0
d 3 1 0 text 9",
header = TRUE
)

df2 <- read.table(
text =
"Cover value
grass 5
moss 2
rock 3",
header = TRUE,
stringsAsFactors = FALSE
)

(对于此解决方案,请确保 Cover 是字符向量,而不是因子。)

一个简单的 for 循环就可以解决这个问题:

df3 <- df1
for(i in seq_len(nrow(df2)))
{
df3[, df2$Cover[i]] <- df2$value[i] * df1[, df2$Cover[i]]
}

关于R将列乘以第二个数据框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21428440/

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