gpt4 book ai didi

r - 使用 data.table 生成多个 qplots

转载 作者:行者123 更新时间:2023-12-01 09:58:00 27 4
gpt4 key购买 nike

我想从 data.table 中为每组生成一个散点图,并从函数中返回它。

我可以使用绘图(如下)生成不同的图表,所以我认为这不是 data.table 问题:

dt = data.table(A = c(1,2,3,4), B = c(1,1,2,2), C = c(4,5,6,7))
result = dt[, list(plot = list(plot(A, C))), by = B]

但是,如果我尝试对 qplot 做同样的事情(为了获得我可以返回的图表),我似乎最终得到了第二张图表的两个副本。

dt = data.table(A = c(1,2,3,4), B = c(1,1,2,2), C = c(4,5,6,7))
result = dt[, list(plot = list(qplot(A, C))), by = B]
result[1,][["plot"]]
result[2,][["plot"]]

如果我遗漏了一些明显的东西/做了一些愚蠢的事情,我深表歉意。

最佳答案

我不是 100% 确定到底发生了什么,但这里有一个解决方法:

result = dt[, list(plot = list(qplot(data=.SD, A, C))), by = B]

似乎 data.table 保留了一个环境来以某种方式执行其评估,而 qplot 只是存储对该环境的引用。由于您没有指定 data 参数,qplot 将在该环境中查找数据,每个 by 值都会不断变化data.table,所以在data.table操作之后,只剩下最后一 block 了。

关于r - 使用 data.table 生成多个 qplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21483404/

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