在 R 中打开 .bcp 文件

2023-12-06

我一直在尝试将 .bcp 文件格式的英国慈善委员会数据转换为 .csv 文件格式,然后可以将其读入 R 中。我所指的数据可在此处获取:http://data.charitycommission.gov.uk/。我想做的是将这些 .bcp 文件转换为可用的数据帧,我可以在 R 中清理并运行分析。

在此 github 页面上有关于如何通过 python 执行此操作的建议https://github.com/ncvo/charity-commission-extract但不幸的是我无法让这些选项发挥作用。

我想知道是否有任何语法或包可以让我直接在 R 中打开这些数据?我还没找到。

另一种选择是简单地使用 R 作为单个字符向量打开文件readLines。我已经这样做了,文件是用分隔符分隔的@**@对于列和*@@*对于行。 (看这里:http://data.charitycommission.gov.uk/data-definition.aspx)。是否有 R 命令允许我从长字符串创建数据帧,为行和列定义分隔符?


R-溶液

编辑版本

不确定所有 .bcp 文件是否都采用相同的格式。我下载了您提到的数据集,并尝试了最小文件的解决方案;extract_aoo_ref.bcp

library(data.table)

#read the file as-is
text <- readChar("./extract_aoo_ref.bcp", 
                 nchars = file.info( "./extract_aoo_ref.bcp" )$size, 
                 useBytes = TRUE)
#replace column and row separator
text <- gsub( ";", ":", text)
text <- gsub( "@\\*\\*@", ";", text)
text <- gsub( "\\*@@\\*", "\n", text, perl = TRUE)
#read the results
result <- data.table::fread( text, 
                             header = FALSE, 
                             sep = ";", 
                             fill = TRUE, 
                             quote = "", 
                             strip.white = TRUE)

head(result,10)

#    V1 V2                           V3                                           V4 V5 V6
# 1:  A  1 THROUGHOUT ENGLAND AND WALES At least 10 authorities in England and Wales  N NA
# 2:  B  1             BRACKNELL FOREST                             BRACKNELL FOREST  N NA
# 3:  D  1                  AFGHANISTAN                                  AFGHANISTAN  N  2
# 4:  E  1                       AFRICA                                       AFRICA  N NA
# 5:  A  2           THROUGHOUT ENGLAND      At least 10 authorities in England only  N NA
# 6:  B  2               WEST BERKSHIRE                               WEST BERKSHIRE  N NA
# 7:  D  2                      ALBANIA                                      ALBANIA  N  3
# 8:  E  2                         ASIA                                         ASIA  N NA
# 9:  A  3             THROUGHOUT WALES        At least 10 authorities in Wales only  Y NA
# 10:  B  3                      READING                                      READING  N NA

对于棘手的文件也是如此;extract_charity.bcp

head(result[,1:3],10)
#       V1 V2                                                                                 V3
# 1: 200000  0                                                          HOMEBOUND CRAFTSMEN TRUST
# 2: 200001  0                                                          PAINTERS' COMPANY CHARITY
# 3: 200002  0                                              THE ROYAL OPERA HOUSE BENEVOLENT FUND
# 4: 200003  0                                                          HERGA WORLD DISTRESS FUND
# 5: 200004  0 THE WILLIAM GOLDSTEIN LAY STAFF BENEVOLENT FUND (ROYAL HOSPITAL OF ST BARTHOLOMEW)
# 6: 200005  0                              DEVON AND CORNWALL ROMAN CATHOLIC DEVELOPMENT SOCIETY
# 7: 200006  0                                                    THE HORLEY SICK CHILDREN'S FUND
# 8: 200007  0                                            THE HOLDENHURST OLD PEOPLE'S HOME TRUST
# 9: 200008  0                                                         LORNA GASCOIGNE TRUST FUND
# 10: 200009  0                                          THE RALPH LEVY CHARITABLE COMPANY LIMITED

所以..看起来它正在工作:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中打开 .bcp 文件 的相关文章

  • 从拟合的 lm 或 glm [R] 获取每个因子水平(以及交互作用)的数据数量

    我在 R 中有一个逻辑回归模型 其中所有预测变量都是分类变量而不是连续变量 除了响应变量 它显然也是分类 二元变量 打电话时summary model name 有没有办法在每个因子水平中包含一个表示观测值数量的列 我在 R 中有一个逻辑回
  • R - 加速近似日期匹配。 idata.frame?

    我正在努力有效地执行两个数据帧之间的 关闭 日期匹配 这个问题探索了一个解决方案 使用idata frame来自plyr包 但我也对其他建议的解决方案感到非常满意 这是两个数据框的非常简单的版本 sampleticker lt data f
  • 非等值连接 - 比较 R 中的两个数据帧

    我想根据第二个数据框中存在的值过滤数据框 例如 匹配第一个数据帧中 BP 列中高于 start pos 列的第一个值且小于 end pos 列或仅小于第二个数据中的 end pos 的行框架 我需要对第二个数据框中的所有值重复此过程 目前
  • 如何在时间序列的中途更改ggplot2中的线属性?

    取以下两个时间序列的简单图 economics ggplot2 dataset require dplyr require ggplot2 require lubridate require tidyr economics gt gathe
  • 如何与 R 包 sf 进行“完整”联合

    我尝试使用三个多边形之间的并集sf st union 下图中显示了 ArcGIS Overlay Union All 的结果 我希望通过使用 R 中的 sf 包获得与 OUTPUT 中五个不同多边形类似的结果 library sf a1 l
  • 如何将表输出复制到剪贴板?

    我试图通过单击按钮将表输出复制到剪贴板 我尝试查看 rclipboard 包 但以我有限的理解 它似乎无法复制输出 我添加了一个actionButton屏幕截图中带有一个图标来显示我想要实现的目标 现在按钮没有任何作用 Code libra
  • 如何在R中将plot转换为ggplot?

    我是 R 新手 我正在尝试将绘图转换为 ggplot plot res s type n main title print lines res s res s output 2014 02 14 51 8460 2014 02 14 44
  • gridExtra 2.0.0 更改标题大小

    我知道 gridExtra 已更新 因此 我想知道如何更改标题大小 这不再有效 grid arrange a b c d ncol 2 nrow 2 main textGrob Title gp gpar fontsize 15 font
  • 如何使用 gvisMotionChart 处理 POSIXlt 格式时间?

    The googleVisR软件包出奇的好 然而 我对一个问题感到困惑gvisMotionChart关于 timevar 因为我的数据集中的时间是POSIXlt格式 例如 2009 07 02 19 00 00 2009 07 02 20
  • 使用 R 中的 reshape 函数处理多个匹配行

    所以我有以下数据框df X Y Z ID value 1 0 20 135 a 20 2 0 20 135 a 30 3 0 20 135 b 40 4 20 104 20 c 10 5 20 104 20 b 15 我想要的最终输出 X
  • 如何在小插图中的同一 R 包中放置指向另一个小插图的链接

    我有一个关于 Bioconductor 的包 我正在向它添加第二个小插图 我想将第二个小插图链接到第一个小插图 因为一个小插图位于包的一般工作流程上 第二个小插图用于针对更高级的用户的精细参数调整 有没有一种干净的方法来做到这一点 我发现的
  • R:重新列出平面列表

    这个问题 https stackoverflow com questions 8139677有一个很好的解决方案 可以在保留列表数据类型的同时展平列表 其中unlist才不是 flatten function x unlist vector
  • 不同元素的ggplot字体大小

    我知道在创建 ggplot 图后我可以使用theme get 返回所有主题元素的详细信息 这对于弄清楚诸如此类的事情非常有帮助strip text x等等 但我有两件事无法弄清楚 1 在下面的ggplot图形中 代表短语 被土拨鼠卡住的木头
  • R Shinydashboard 根据选项卡选择显示/隐藏 UI 元素

    如果有人可以提供帮助 我正在努力满足要求 我必须根据用户的选项卡面板选择在仪表板侧栏上显示 隐藏一些元素 这是 UI 代码的一部分 可让您了解我的应用程序的结构 我需要仅在 tabpPanel 2 上显示 Fourthoutput Fift
  • 如何为每个条形图制作具有定义水平边框的堆叠条形图

    我有一些数据想以一种我不知道如何在条形图中显示的方式 希望你能帮我解决这个问题 我的表由 4 列组成 簇 0 6 IgG Status mild high mild low Severe High 患者 1 16 和值 每个簇的标准化值 这
  • 加载 plyr 包时出现问题

    我使用 R 2 13 1 但未能成功尝试在 R 中加载包 plyr 1 6 我已将其手动安装到目录 R library 中 我的代码是 libPaths R library library plyr 我收到消息 库 plyr 中的错误 pl
  • 匹配字符串在多列上循环

    我有来自一项开放式调查的数据 我有一个注释表和一个代码表 代码表是一组主题或字符串 我正在尝试做的事情 检查代码表中相关列中是否存在开放式注释中的单词 字符串 在评论表中为特定主题添加一个新列 并添加一个二进制 1 或 0 来表示已标记哪些
  • R 用簇绘制热图,但隐藏树状图

    默认情况下 Rheatmap将聚集行和列 mtscaled as matrix scale mtcars heatmap mtscaled scale none 我可以禁用集群 heatmap mtscaled Colv NA Rowv N
  • Rshinyjsshinydashboard框在radionButtons输入上展开

    基于这个问题Rshinyjsshinydashboard框在操作按钮输入时展开 https stackoverflow com questions 49659804 r shinyjs shinydashboard box uncollap
  • R Markdown 文档标题中的希腊字母

    R markdown 文档的标题中是否可以包含希腊字母 我试过这个 title Amylase author author date 8 March 2017 output pdf document keep tex true toc ye

随机推荐