dtplyr 不能与非法名称一起使用

问题描述 投票:0回答:1

我正在使用以下示例数据:

library(data.table)
library(dtplyr)
library(dplyr)

df = data.frame(a = c(1,1,3), b = c(4:6))

names(df) = c('aa aa', 'bb bb')

df_dt = lazy_dt(df)

df_dt %>% group_by(`aa aa`) %>% slice(n())

但是,我遇到了这个错误:

Error in .checkTypos(e, names_x) : 
  Object '`aa aa`' not found amongst aa aa, bb bb

如果我忽略了某些内容或犯了错误,您能帮助我理解吗?谢谢。

r dplyr tidyverse dtplyr
1个回答
0
投票

发生这种情况是因为

df_dt
不是
data.frame
。函数
group_by
slice
适用于 data.frame。但
df_dt
不是
data.frame
。您可以使用
class(df_dt)
进行检查。

如果是

data.frame
tibble
,则只有代码有效。但
df_dt$parent
data.frame

尝试修改代码

df_dt$parent |> group_by(`aa aa`) %>% slice(n())

这会给你想要的结果。

© www.soinside.com 2019 - 2024. All rights reserved.