使用dtplyr时,pivot_不再给出错误

使用dtplyr时,pivot_不再给出错误,r,dplyr,data.table,dtplyr,R,Dplyr,Data.table,Dtplyr,我有一个很大的数据集,我正试图用dtplyr整理。它由大量(>1000)的日期-值对组成,用于不同的位置。最初的版本使用了一个pivot_,它在dplyr中运行良好,但在dtplyr中给出了一个错误。有没有办法解决这个问题,保持dtplyr的性能优势 这很有效 library(tidyverse) library(dtplyr) library(data.table) my_data_tb <- tribble( ~`date-A`, ~`value-A`, ~`date-B`, ~

我有一个很大的数据集,我正试图用dtplyr整理。它由大量(>1000)的日期-值对组成,用于不同的位置。最初的版本使用了一个pivot_,它在dplyr中运行良好,但在dtplyr中给出了一个错误。有没有办法解决这个问题,保持dtplyr的性能优势

这很有效

library(tidyverse)
library(dtplyr)
library(data.table)

my_data_tb <- tribble(
  ~`date-A`, ~`value-A`, ~`date-B`, ~`value-B`,
  "date1", 1, "date2", 2,
  "date2", 1, "date3", 2 
)

my_data_tb %>% 
  pivot_longer(
  cols = everything(),
  names_to = c(".value", "grid_square"),
  names_sep = "-"
)

只是一个想法:
pivot\u不再是
tidyr
动词,而不是
dplyr
动词,这可以解释为什么它没有被翻译。好吧,谢谢,我没有意识到!在这种情况下,我可能需要一个
data.table
解决方案。从表面上看:没有一个完美的答案——它指向
pivot\u longer
,在这种情况下不起作用!这应该可以让你接近:
melt(as.data.table(my_data_tb),variable.name=“grid_square”,measure.vars=patterns(date=“^date-”,value=“^value-”)
),但是是的,
A
B
丢失到级别索引中,尽管这是一个后验汉克斯的简单修复方法,这很好。为了完整性,我有:
#melt
我的数据\u dt%
作为.data.table()%%
melt.data.table(度量值=模式(“^date-”,“^value-”),value.name=c(“date”,“value”)
修复变量名(方便的是,我已经有了一个变量名列表,这是我脚本前面步骤中的一个变量名列表,您也可以查看一下:并且(我自己没有测试),他们试图关闭tidyr-data.table缺口
my_data_dt <- as.data.table(my_data_tb)
my_data_dt <- lazy_dt(my_data_dt)

my_data_dt %>%
  pivot_longer(
    cols = everything(),
    names_to = c(".value", "grid_square"),
    names_sep = "-"
  )
my_data_dt %>%
  as_tibble() %>%
  pivot_longer(
    cols = everything(),
    names_to = c(".value", "grid_square"),
    names_sep = "-"
  )