小编Alb*_*uez的帖子

如何加入 dplyr 中除指定列之外的所有内容?

我有两个共享所有列的数据集,我想基于除其中两列之外的所有列进行反连接。

\n

例如,我想做如下的事情:

\n
library(dplyr)\ndf1 <- tibble(x = c("A", "B", "C"), y = c("X", "Y", "Z"), z = c(1, 2, 3),\n              a = c(4, 5, 6))\n\ndf2 <- tibble(x = c("A", "D", "E"), y = c("X", "W", "R"), z = c(1, 5, 6),\n              a = c(4, 7, 8))\n\ndf2 %>% anti_join(df1, join_by(-c(z, a)))\n#> Error in `join_by()`:\n#> ! Expressions must use one of: `==`, `>=`, `>`, `<=`, `<`, `closest()`,\n#>   `between()`, `overlaps()`, or `within()`.\n#> \xe2\x84\xb9 Expression 1 is `-c(z, a)`.\n\n#> Backtrace:\n#>      \xe2\x96\x86\n#>   1. \xe2\x94\x9c\xe2\x94\x80df2 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

4
推荐指数
1
解决办法
622
查看次数

如何在LightGBM python中实现record_evaluation回调?

我正在使用该model = lgb.train功能。当尝试根据 LightGBM 模型的历元(即 )绘制评估指标时,lgb.plot_metric(model)出现以下错误:

类型错误:助推器必须是 dict 或 LGBMModel。要将plot_metric与Booster类型一起使用,首先使用record_evaluation回调记录指标,然后将其作为参数传递给plot_metricbooster

但我在文档中找不到有关设置上述回调的参数的任何信息。有没有办法在不借助 scikit-learn 版本的 LightGBM 的情况下实现这一点?

python lightgbm

2
推荐指数
1
解决办法
4292
查看次数

如何根据data.table分组编写箭头数据集?

我有一个名为的数据集,df其中有年、月和日变量。我想使用该write_dataset函数输出具有标准箭头数据集语法的文件夹,如下图所示:

在此输入图像描述

每个文件夹内将有month=1、month=2,依此类推。

现在,为了创建它,我使用了以下代码:

df <- df %>% group_by(year, month, day)
output_folder = "my/path"
arrow::write_dataset(df, 
                     output_folder, 
                     format = "parquet", 
                     )
Run Code Online (Sandbox Code Playgroud)

但是,我的数据集太大,我想利用data.table快速分组的优势。我做同样的事情的方法如下:

grouping_cols = c("year", "month", "day")
setkeyv(df, grouping_cols)

arrow::write_dataset(df, 
                     output_folder, 
                     format = "parquet", 
                     )
Run Code Online (Sandbox Code Playgroud)

但是,现在结果未分组,并且返回单个 .parquet 文件(未充分利用 的潜力arrow::write_dataset)。

在此输入图像描述

有没有办法让相同的数据集按指定列进行分组,但基于而data.table不是dplyr分组?

r dplyr data.table apache-arrow

2
推荐指数
1
解决办法
484
查看次数

标签 统计

dplyr ×2

r ×2

apache-arrow ×1

data.table ×1

lightgbm ×1

python ×1