搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  data.zip
资料下载链接地址: https://bbs.pinggu.org/a-3304207.html
附件大小:
19.86 MB   举报本内容
如题,读取大量文件时多次使用for循环将降低效率,主要遇到以下几个问题:(1)读取多层文件夹的数据,除了循环有什么比较好用的方法?
(2)读入json文件和提取数据、写入数据时有什么比较高效的办法?能否考虑减少循环和多线程运行?
(3)将结果df_all用RMySQL包中的dbWriteTable(con1,"data_test",df_all,overwrite=TRUE)写入MySQL数据库时,中文出现乱码,尝试使用了dbSendQuery(con1,"set names utf8")转化,还是未解决。
以下是我用比较笨的方法写的,可以正常运行,请问如何优化代码,可以提高效率。R如果使用多线程,有什么推荐的好方法,谢谢!代码如下:
  1. library(jsonlite)
  2. Indexnames <- c("publication_number","earliest_publication_date","title","title_zh_cn","title_en",
  3. "abstract","abstract_zh_cn","abstract_en","applicants_address","applicants_countries" )
  4. M <- length(Indexnames)
  5. setwd('E:/tempdata/data/')
  6. filenames <- dir()
  7. df_all <- data.frame()
  8. for (h in filenames){
  9. filenames_1 <- dir(paste0(h,'/'))
  10. for (j in filenames_1){
  11. file_list <- dir(paste0(h,'/',j,'/'))
  12. file_list <- file_list[grepl("patent",file_list)]
  13. for (k in file_list){
  14. data <- jsonlite::stream_in(file(paste0(h,'/',j,'/',k)))
  15. N <- NROW(data)
  16. df_empty <- data.frame(matrix(ncol = M , nrow = N ,dimnames = list(c(),Indexnames)))
  17. for (i in 1:N){
  18. df_empty[i,1] <- data[i,"publication_number"]
  19. df_empty[i,2] <- data[i,"earliest_publication_date"]
  20. df_empty[i,3] <- data[i,3][[1]][1]
  21. df_empty[i,4] <- data[i,3][[2]][1]
  22. df_empty[i,5] <- data[i,3][[3]][1]
  23. df_empty[i,6] <- data[i,4][[1]][1]
  24. df_empty[i,7] <- data[i,4][[2]][1]
  25. df_empty[i,8] <- data[i,4][[3]][1]
  26. df_empty[i,9] <- data[i,5][[1]]$address[1]
  27. df_empty[i,10] <- data[i,5][[1]]$countries
  28. }
  29. rm(data)
  30. df_all <- rbind(df_all,df_empty)
  31. }
  32. }
  33. }
复制代码








    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2026-1-17 11:31