读取列中包含逗号的 CSV 文件

2023-12-24

我有一个包含 6 列的 csv 文件,其中一列的文本以逗号分隔,例如 BOLT、RD HD SQ SHORT NECK、METRIC。

当我在 R 中读取该文件时,该列发生溢出,随后数据移动到新行。

下面我粘贴几行

014003051906,ETN5080 ,0450,螺栓套件上轴5速,1.000,F 014003051906,ETN5967 ,0460,传感器传感器 FH 后轴速度,1.000,F 014003051906,ETN64267 ,0470,倾斜单元传感器,1.000,F

014003065376,03M7184 ,0020,螺栓 - M 8.0 X 1.250 X 20.0 - 8.8-锌,4.000,G 014003065376,03M7386 ,0090,螺栓,RD HD SQ 短颈,公制,18.000,G 014003065376,14M7296 ,0090,螺母,公制,六角 法兰,14.000,G

最后两行就是问题所在。 “螺母、公制、六角法兰”应位于一个变量下。

如何解决这个问题?


data <- readLines(con = textConnection("014003051906,ETN5080 ,0450,BOLT KIT UPPER SHAFT WITH 5 SPEED,1.000,F
014003051906,ETN5967 ,0460,SENSOR SENSOR FH BACKSHAFT SPEED,1.000,F
014003051906,ETN64267 ,0470,TILT UNIT SENSOR,1.000,F

014003065376,03M7184 ,0020,BOLT - M 8.0 X 1.250 X 20.0 - 8.8-Zinc,4.000,G
014003065376,03M7386 ,0090,BOLT, RD HD SQ SHORT NECK, METRIC,18.000,G
014003065376,14M7296 ,0090,NUT, METRIC, HEX FLANGE,14.000,G"))

pattern <- "^([^,]*),([^,]*),([^,]*),(.*),([^,]*),([^,]*)$"

library(stringr)
str_match(data, pattern)[, - 1]
#      [,1]           [,2]        [,3]   [,4]                                     [,5]     [,6]
# [1,] "014003051906" "ETN5080 "  "0450" "BOLT KIT UPPER SHAFT WITH 5 SPEED"      "1.000"  "F" 
# [2,] "014003051906" "ETN5967 "  "0460" "SENSOR SENSOR FH BACKSHAFT SPEED"       "1.000"  "F" 
# [3,] "014003051906" "ETN64267 " "0470" "TILT UNIT SENSOR"                       "1.000"  "F" 
# [4,] NA             NA          NA     NA                                       NA       NA  
# [5,] "014003065376" "03M7184 "  "0020" "BOLT - M 8.0 X 1.250 X 20.0 - 8.8-Zinc" "4.000"  "G" 
# [6,] "014003065376" "03M7386 "  "0090" "BOLT, RD HD SQ SHORT NECK, METRIC"      "18.000" "G" 
# [7,] "014003065376" "14M7296 "  "0090" "NUT, METRIC, HEX FLANGE"                "14.000" "G" 

Edit:
为初学者提供的正则表达式解释,简单易懂,因此请原谅不准确之处:

  • Initial ^和终端$表示字符串的开始和结束。
  • 括号用于分组(组str_match()将提取)。
  • .表示任何字符,并且.*表示任意数量的任意字符。
  • [^,]表示不是逗号的任何字符。

当放在一起时,这意味着:start of string - substring without a comma - comma(重复3次)-substring possibly containing commas - comma - substring without a comma - comma - substring without a comma - end of string,并且仅提取括号内的组。

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

读取列中包含逗号的 CSV 文件 的相关文章

  • 将线条剪裁到绘图区域并在绘图区域外显示文本

    我想限制绘图的可见 y 范围 为了保留超出此范围的值 我需要设置oob 出界 to rescale none这效果很好 不过 我还想在图外的页边空白处添加一些文本 为了做到这一点 我需要关闭剪辑 这会导致超出范围的值被绘制在绘图区域之外的边
  • R:使用 dcast 时包含没有条目的因子

    我在数据帧上使用 reshape2 函数 dcast 其中一个变量是某些级别未出现在数据框中的因素 但我会将所有值包含在创建的新列中 例如 假设我运行以下命令 library reshape2 dataDF lt data frame id
  • 匹配向量内的向量

    I have vec1 lt c 0 0 0 1 1 0 1 1 1 0 0 1 vec2 lt c 1 1 我预计 magicFUN x vec1 y vec2 1 4 7 8 这意味着我想要一个完整向量在另一个向量内的位置 match
  • 不同的分位数:箱线图与小提琴图

    require ggplot2 require cowplot d iris ggplot2 ggplot d aes factor 0 Sepal Length geom violin fill black alpha 0 2 draw
  • 没有垂直线的直方图

    当我创建直方图时 它看起来很像这样 set seed 1 x lt 1 100 y lt x rnorm 50 y round y hist y Is there a way to make a histogram look a bit l
  • 将 R 传单地图保存为 html:不包括图块

    我正在尝试使用 saveWidget 或将 rmd 文件输出到 html 来保存 R 传单地图 如下所述 将传单输出保存为 html https stackoverflow com questions 30110377 saving lea
  • 为什么 quosures 在 group_by() 中起作用,但在 filter() 中不起作用?

    我正在构建一个函数 我将根据字符串操作数据框 在该函数中 我将根据字符串构建一个列名称 并使用它来操作数据框 如下所示 library dplyr orig df lt data frame id 1 3 amt c 100 200 300
  • R:使用 as.formula 修复模型中的模型调用

    我有一个gls模型 其中我将公式 来自另一个对象 分配给模型 equation lt as formula aic obj row model gt equation temp avg I year 1950 mod1 lt gls equ
  • 对 R/Sweave 进行编程以获得正确的 \Sexpr 输出

    我在为 Sweave 进行 R 编程时遇到了一些问题 rstats twitter 小组经常指出这里 所以我想我应该把这个问题向大家提出 我是一名分析师 而不是程序员 所以在我的第一篇文章中请放轻松 问题是 我正在使用 R 在 Sweave
  • 是否可以在 R 中创建自定义 pch 形状?

    R 中的许多绘图函数都使用图形参数pch指定数据点的形状 根据R 文档 https www rdocumentation org packages graphics versions 3 6 2 topics points 有 26 个矢量
  • 如何在 ggplot2 中向 x 轴添加特定值?

    我正在尝试在 ggplot2 中绘制图表 我希望 x 轴显示 2 84 以及下面键入的序列 除了在 Breaks 中输入所有精确值之外 还有其他方法吗 我尝试了谷歌 但它没有解决我的问题 scale x continuous limits
  • 如何在 R 中使用 msgbox [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在中显示消息框R 我正在寻找类似的东西msgbox在 VBA 中 因此我可以向用户发出有关问题的警报 此外 我想允许一些用户交互 例如
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • 如何将变量传递给 ddply 中的自定义函数?

    考虑以下数据 d data frame experiment as factor c foo foo foo bar bar si runif 5 ti runif 5 我想进行相关性测试si and ti 对于每个experiment因素
  • 在R中提取其他两个字符串之间的字符串

    我试图找到一种简单的方法来提取出现在两个已知子字符串之间的未知子字符串 可以是任何内容 例如 我有一个字符串 a lt anything goes here STR1 GET ME STR2 anything goes here 我需要提取
  • 生成与现有变量具有预定义相关性的二进制变量

    对于模拟研究 我想生成一组随机变量 连续变量和二元变量 这些变量与已经存在的变量具有预定义的关联binary变量 此处表示为x 对于这篇文章 假设x是按照下面的代码生成的 但请记住 在现实生活中 x是一个已经存在的变量 set seed 1
  • 如何将带有几行代码的字符数组转换为 data.frame?

    我有以下数组 my list lt c Jan 01 Dec 31 00 00 24 00 Jan 01 Jun 30 12 00 18 00 Jul 06 Dec 31 09 00 19 00 导致以下结果的最短代码是什么 x1 x2 x
  • 在Python中从CSV文件中获取随机行并找到相应的单词,就像测验一样

    抱歉标题含糊不清 想不出更好的表达方式 我有一个包含德语 英语单词的 CSV 文件 如下所示 Ja Yes Nein No Katze Cat 我希望我的 python 脚本从 CSV 文件中打印一个随机的德语单词 并要求他们输入英语单词
  • 修改x轴刻度标签

    我正在尝试更改由生成的箱线图的 x 轴刻度标签ggplot2 x 轴是一个分类变量 HabFac 我想要的是将其刻度更改为 6 个化学品 A E 下面是我的代码 raw data read table Read data p TT ggpl

随机推荐

  • Android 中的 AudioRecorder 错误缓冲区大小无效

    我需要同时录制和播放音频 我使用 2 个线程的帮助 这是代码 recorder new AudioRecord AudioSource MIC 8000 AudioFormat CHANNEL CONFIGURATION MONO Audi
  • 对于数据框中的每一行,根据日期范围创建多行[重复]

    这个问题在这里已经有答案了 我有一个如下所示的数据框 Name StartDate EndDate A 12 12 2012 12 15 2012 B 11 11 2012 11 14 2012 对于上面的每一行 我想生成带有名为 日期 的
  • 如何将图像分成 9 个小图像(类似于拼图)

    所以 我尝试创建一个小益智游戏 目前看起来像这样 顶部是拼图 您可以在其中放置从页面底部起 1 行 可滚动 的表格中选择的棋子 问题是这些是从原始图像中剪下来的 9 张单独图像 我只想只有一张图像 大图像 并以与本文上图中类似的方式将它们放
  • 如何在 C# 中安全地将 System.Object 转换为“bool”?

    我正在提取一个bool来自 非通用 异构 集合的值 The as运算符只能与引用类型一起使用 因此不可能使用as尝试安全转换bool This does not work The as operator must be used with
  • 如何在抓取网站时到达最后一页后停止 selenium webdriver?

    网站上的数据量 页面数 不断变化 我需要抓取循环分页的所有页面 网站 https monentreprise bj page annonces 我尝试过的代码 xpath id yw3 li 12 a while True next pag
  • 如何从 VB.NET 对话框中获取值?

    我有一个 frmOptions 表单 其中有一个名为 txtMyTextValue 的文本框和一个名为 btnSave 的按钮 用于在单击时保存并关闭表单 然后 当单击主窗体 frmMain 上的按钮 btnOptions 时 我将显示此对
  • 每次我到处使用 struct 而不是 class 时,我会杀死一只小猫吗?

    struct默认情况下是公开的 而class默认情况下是私有的 让我们以 Ogre3D 为例 如果我改变一切class发生与结构 它编译 我猜 并且引擎像以前一样工作 如果我是对的 编译后的代码与以前完全相同 因为只有编译器检查私有 受保护
  • 如何使用console.log(Javascript)打印函数的输出[重复]

    这个问题在这里已经有答案了 以下代码的意思是打印带有名称的名称字符串 然而 这是不正确的 var nameString function name return Hi I am name nameString Amir console lo
  • 如何在一块玻璃上绘制多个矩形?

    我正在尝试在玻璃板上绘制一系列矩形 如中所述here http docs oracle com javase tutorial uiswing components rootpane html glasspane 问题是 窗格中仅显示列表中
  • Python 打印参数结束

    如何在使用 end 时从输出中删除最后一个 add gt 我在这里没有使用 sep bcoz sep 在这里不会有任何效果 因为 print 语句在这里一次只打印 1 项并以 incr 结尾我的 def fibonaci num n if
  • Google Protocol Buffers,如何处理多种消息类型?

    是否可以获得序列化的Protocol Buffer消息的Type 我有这个例子 option java outer classname ProtoUser message User required int32 id 1 required
  • 在ES6中,如何检查对象的类?

    在ES6中 如果我创建一个类并创建该类的对象 如何检查该对象是否是该类 我不能只用typeof因为物体仍然 object 我只是比较构造函数吗 Example class Person constructor var person new
  • Visual Studio 2012 最新项目丢失

    在 Windows 任务栏和开始菜单中 最近打开的项目 解决方案列表为空 然而 在VS中 常规选项被标记为显示10个项目 该列表曾经显示 但最近我发现它消失了 有任何想法吗 我遇到了完全相同的问题 但我感觉其他菜单项也丢失了 我所做的是进入
  • 捕获组引用+数字

    例如 我想用第一个捕获组替换字符串1附加到它 我想要做 11 解释为 1 and 1 但这并不适用于所有口味 我该怎么办 信息位于视网膜链接 https github com mbuettner retina你提供的说 在引擎盖下 它使用
  • 四倍精度特征值、特征向量和矩阵对数

    我正在尝试以四倍精度对矩阵进行对角化 并取它们的对数 有没有一种语言可以使用内置函数来完成此任务 请注意 标签中的语言 包还不够 存在以下缺陷 Matlab 不支持四精度 Python NumPy SciPy 数据类型为 float128
  • 使用什么算法/方法来同步多个视频播放器

    动机 我目前正在尝试同步两个联网的 raspi 上的两个视频 我尝试从桌面 http 和 udp 进行实时流式传输 但每个 raspi 仍然以明显的延迟打开流 接下来我尝试在 raspi 上安装 vlc 并与桌面 vlc 同步 但这也不起作
  • 如何从 PHP 日期时间获取 unix 时间戳?

    我正在尝试使用 PHP 获取 unix 时间戳 但它似乎不起作用 这是我尝试转换为 unix 时间戳的格式 PHP datetime 2012 07 25 14 35 08 unix time date Ymdhis strtotime d
  • 如何在 Linux 上拦截来自 USB 设备的消息?

    我有一个流行的绘图板 我用 USB 连接到我的电脑 连接后 平板电脑会检测手部动作并相应地操纵指针 在某个地方 平板电脑正在将这些数据传输到我的计算机 我的目标是拦截这些传输并在处理数据后操纵鼠标 我发现的流行语是 设备驱动程序 and H
  • HTML 步进器中单位的显示

    我希望用户输入带有 cm kg 或 等单位的数字 这可以在 jQuery UI 中完成 Example http jqueryui com spinner currency 但是 我想用纯html实现它 例如 input display i
  • 读取列中包含逗号的 CSV 文件

    我有一个包含 6 列的 csv 文件 其中一列的文本以逗号分隔 例如 BOLT RD HD SQ SHORT NECK METRIC 当我在 R 中读取该文件时 该列发生溢出 随后数据移动到新行 下面我粘贴几行 014003051906 E