gpt4 book ai didi

r - 将一列列表除以另一列中的数字

转载 作者:行者123 更新时间:2023-12-04 14:51:05 24 4
gpt4 key购买 nike

您好,我有这个数据框 (test),我想将列表 (AO) 中的每个元素除以另一列中的值 ( DP):

df <- structure(list(DP = c("572", "594", "625", "594", "537", "513"
), AO2 = list(list(c(2, 2)), list(c(2, 2, 2)), list(c(4, 4)),
list(c(3, 2, 2, 2, 3)), list(c(2, 2)), list(c(2, 2)))), row.names = c(NA,
-6L), class = c("data.table",
"data.frame"))

df

我想在 df 中创建一个新列,其中列表的每个值除以同一行的 df$DP 中的值。

enter image description here

我试过使用 mapply 但它没有用。有什么想法吗?

test$AO2_DP <- mapply(FUN = `/`, list(as.numeric(unlist(test$AO2))), as.numeric(test$DP), SIMPLIFY = FALSE)

最佳答案

Base R 选项使用 Map -

df$result <- Map(`/`, unlist(df$AO2, recursive = FALSE),df$DP)
df

# DP AO2 result
#1: 572 <list[1]> 0.003496503,0.003496503
#2: 594 <list[1]> 0.003367003,0.003367003,0.003367003
#3: 625 <list[1]> 0.0064,0.0064
#4: 594 <list[1]> 0.005050505,0.003367003,0.003367003,0.003367003,0.005050505
#5: 537 <list[1]> 0.003724395,0.003724395
#6: 513 <list[1]> 0.003898635,0.003898635

如果DP value 是真实数据中的字符,首先通过 df$DP <- as.numeric(df$DP) 将其转换为数字在应用答案之前。

关于r - 将一列列表除以另一列中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69095454/

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