我有计划重复使用表A中同一栏的合并,但将表B中的一栏改为使用数据的格式。 表格:合并指挥一再相当缓慢,因此我很想知道,这样做是否要更快。
例如:
出版一份水果“A”表,分两栏:“fruit_name”和“price”
另一表“B”篮子,3栏,“fruit_1”、“fruit_2”和“fruit_3”
我要逐行获得表B中水果的总价。 我可以进行3次合并,所有使用水果桌上的“fruit_name”,第一个使用篮子桌上的“fruit_1”、“fruit_2”和“fruit_3”。
不过,单单价需要很长时间。 是否有办法更有效地计算? 在这里,《法典》树立了榜样,取得了预期的成果,但进展缓慢。
我一般使用数据。 表格和数据总体效率很高,因此我更喜欢数据,但是如果数据合并速度超过3份,就会向他人开放。
此外,我想象,我能够以长期格式获得数据,并做一次合并,ideally。 d 我避免了,由于我的数据具有广泛的意义,内容广泛,需要广泛出口。 但是,如果这肯定是最佳做法,那么我会猜测这些最佳做法是好的。
Thanks all for your time!
library(data.table)
fruits <- data.table(fruit_name = c( orange , apple , pear , kiwi , blueberry )
, price = c(1, 1.531, 2.1, 2.25, 3.03)
)
baskets <- data.table(fruit_1 = c( orange , apple , apple , pear )
,fruit_2 = c( apple , pear , kiwi , kiwi )
,fruit_3 = c( pear , kiwi , blueberry , blueberry ))
result <- copy (baskets)
result <- merge(result, fruits, by.x = fruit_1 , by.y = fruit_name )
setnames(result, price , price_1 )
result <- merge(result, fruits, by.x = fruit_2 , by.y = fruit_name )
setnames(result, price , price_2 )
result <- merge(result, fruits, by.x = fruit_3 , by.y = fruit_name )
setnames(result, price , price_3 )
result[,price_total := price_1 + price_2 + price_3]