我需要从一个非常大的数据集中分析数据,为此,我需要将一个字符变量分成一千多列。
此变量的结构为:
number$number$number$ and so on for a thousand numbers
我的数据存储在SQLite的. db文件中,然后我使用"RSQLite"包将其导入R中。
我尝试使用dplyr将此列拆分为多个列:
#d is a data.table with my data
d2=d %>% separate(column_to_separate, paste0("S",c(1:number_of_final_columns)))
它可以工作,但也需要很长时间。有人有更快地拆分此列的解决方案吗(在R上或使用SQLite)?
谢谢。
2条答案
按热度按时间pwuypxnk1#
您可以使用
tidyfast
软件包(see here),该软件包利用data.table
。在此测试中,它的速度大约是data.table
的三倍:创建于2023年2月3日,使用reprex v2.0.2
iq0todco2#
您可以尝试按原样写入该文件,然后尝试使用fread加载它,这通常相当快。
编辑:我测试了速度,似乎比dt_separate from tidyfast快,但这取决于数据集的大小。