gpt4 book ai didi

r - 获取元素随机从另一个表B取数据表

转载 作者:行者123 更新时间:2023-12-01 22:59:01 24 4
gpt4 key购买 nike

我有一个 data.table 类型的表 A,其中包含一组元素,我想向该表添加一个新的 mass 列,从另一个表 B 中随机检索。我想用 data.table 包来做这个,但我不知道如何优化它。

表A

element
----------
silver
chlorine
silver
chlorine
chlorine
chlorine
silver

表B

mass    element
------
0.3 silver
0.5 silver
1.6 silver
1.2 chlorine
5.3 chlorine
0.1 chlorine

建表代码:

tableA <- data.table(
element = c("silver","chlorine","silver", "chlorine","chlorine","chlorine","silver")
)

tableB <- data.table(

mass = c(0.3,0.5,1.6,1.2,5.3,0.1),
element = c("silver","silver","silver", "chlorine","chlorine","chlorine")
)

我想在 data.table 包中使用的数据量非常重要

预期结果:

    element     mass
-----------------------
silver 1.6
chlorine 5.3
silver 0.3
chlorine 1.2
chlorine 1.2
chlorine 0.1
silver 1.6

此代码返回一个无法修复的错误,但您认为该方法是否良好且经过优化?

tableA[, mass := tableB[sample(mass), on = .(element)]$mass]

最佳答案

这是一种方法,

set.seed(42)
tableA[tableB[, list(mass = list(mass)), by = element], mass := sapply(i.mass, sample, size = 1), on = .(element)]
tableA
# element mass
# <char> <num>
# 1: silver 0.3
# 2: chlorine 1.2
# 3: silver 0.3
# 4: chlorine 5.3
# 5: chlorine 5.3
# 6: chlorine 5.3
# 7: silver 0.3

关于r - 获取元素随机从另一个表B取数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72354735/

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