R:从字符串中删除最后三个点

2023-11-21

我有一个文本数据文件,我可能会用它来读取readLines。每个字符串的初始部分包含很多乱码,后面是我需要的数据。乱码和数据通常由三个点分隔。我想在最后三个点之后分割字符串,或者用某种标记替换最后三个点,告诉 R 将这三个点左侧的所有内容视为一列。

这是 Stackoverflow 上的类似帖子,可以找到最后一个点:

R:找到字符串中的最后一个点

但是,就我而言,某些数据有小数,因此找到最后一个点是不够的。另外,我认为...在 R 中具有特殊含义,这可能会使问题变得复杂。另一个潜在的复杂情况是有些点比其他点更大。此外,在某些行中,三个点之一被替换为逗号。

此外gregexpr在上面的帖子中我尝试过使用gsub,但无法找出解决方案。

这是一个示例数据集和我希望实现的结果:

aa = matrix(c(
'first string of junk... 0.2 0 1', 
'next string ........2 0 2', 
'%%%... ! 1959 ...  0 3 3',
'year .. 2 .,.  7 6 5',
'this_string   is . not fine .•. 4 2 3'), 
nrow=5, byrow=TRUE,
dimnames = list(NULL, c("C1")))

aa <- as.data.frame(aa, stringsAsFactors=F)
aa

# desired result
#                             C1  C2 C3 C4
# 1        first string of junk  0.2  0  1
# 2            next string .....   2  0  2
# 3             %%%... ! 1959      0  3  3
# 4                 year .. 2      7  6  5
# 5 this_string   is . not fine    4  2  3

我希望这个问题不要被认为太具体。文本数据文件是使用我昨天关于在 R 中读取 MSWord 文件的文章中概述的步骤创建的。

有些行不包含乱码或三个点,而仅包含数据。然而,这对于后续帖子来说可能会变得复杂。

感谢您的任何建议。


这确实有效,虽然不是特别优雅......

options(stringsAsFactors = FALSE)


# Search for three consecutive characters of your delimiters, then pull out
# all of the characters after that
# (in parentheses, represented in replace by \\1)
nums <- as.vector(gsub(aa$C1, pattern = "^.*[.,•]{3}\\s*(.*)", replace = "\\1"))

# Use strsplit to break the results apart at spaces and just get the numbers
# Use unlist to conver that into a bare vector of numbers
# Use matrix(, nrow = length(x)) to convert it back into a
# matrix of appropriate length
num.mat <- do.call(rbind, strsplit(nums, split = " "))


# Mash it back together with your original strings
result <- as.data.frame(cbind(aa, num.mat))

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

R:从字符串中删除最后三个点 的相关文章

  • 什么是 data.frame 可以做而 data.table 不能做的事情?

    我刚刚开始使用 R 并遇到了 data table 我发现它很棒 一个非常天真的问题 我可以忽略 data frame 来使用 data table 以避免两个包之间的语法混淆吗 来自数据表常见问题解答 http datatable r f
  • 使用梯度下降(最速下降)估计线性回归

    示例数据 X lt matrix c rep 1 97 runif 97 nrow 97 ncol 2 y lt matrix runif 97 nrow 97 ncol 1 我已经成功创建了成本函数 COST lt function th
  • 在 RStudio 控制台中显示西里尔字母

    我在 Rstudio 控制台中显示俄语字符时遇到问题 我使用 readxl 包加载带有俄语的 Excel 文件 西里尔字母在数据框中正确显示 但是 如果我运行一个输出包含变量名称的函数 RStudio 控制台将显示符号而不是正确的西里尔字符
  • 如何将正则表达式捕获组与 JFlex 结合使用?

    虽然这个问题是关于 JFlex 的 但它可能也适用于其他扫描仪生成器 例如 lex flex 如果我有一些规则 如何在该规则的一部分中创建一个捕获组 并使用该捕获组的结果作为在规则匹配时调用的代码的参数 例如 假设我有一个匹配 SGML 标
  • 如何在 标签中用 %20 替换空格

    我想替换 html 文本的图像标签中的所有空格 Example img src to img src photo 201 jpg 我没有找到 preg replace 的解决方案 但它可能是一个简单的正则表达式行 谢谢 Edit 抱歉各位
  • 根据绘图单击事件对数据框进行子集化

    我有下面的数据框 Name lt c John Bob Jack Number lt c 3 3 5 NN lt data frame Name Number 还有一个简单闪亮的应用程序 可以从中创建一个绘图直方图 我的目标是单击直方图的一
  • 为什么 quosures 在 group_by() 中起作用,但在 filter() 中不起作用?

    我正在构建一个函数 我将根据字符串操作数据框 在该函数中 我将根据字符串构建一个列名称 并使用它来操作数据框 如下所示 library dplyr orig df lt data frame id 1 3 amt c 100 200 300
  • 如何使用正则表达式选择字符串中每个单词的第一个字母

    我试图使用正则表达式选择字符串中每个单词的第一个字母 但遇到了问题 我能够使用选择第一个单词的第一个字母 w igm 我如何修改它以选择字符串中每个单词的第一个字母 举个例子 我有字符串 我喜欢狗 我想要代码选择 I L 和 D Use a
  • 插值时间序列

    我有两组具有不同时间戳的数据 一组数据包含校准数据 另一组包含样本数据 校准的频率比样品少得多 我想做的是将校准数据 低频 插值到采样时间序列 高频 上 sam lt textConnection time value 01 00 52 2
  • 在 R 中使用科学记数法和 xtable

    我将 data frame 传递给 xtable dat table lt xtable dat 1 20 digits 10 我宁愿使用科学记数法 而不是像那样显示数字 我该怎么做呢 看过了 但我发现的只是R 格式化xtable中的数字
  • 对 R/Sweave 进行编程以获得正确的 \Sexpr 输出

    我在为 Sweave 进行 R 编程时遇到了一些问题 rstats twitter 小组经常指出这里 所以我想我应该把这个问题向大家提出 我是一名分析师 而不是程序员 所以在我的第一篇文章中请放轻松 问题是 我正在使用 R 在 Sweave
  • Pandas 字符串提取所有匹配项

    我正在学习 pandas 系列字符串方法中的正则表达式操作 我能够从字符串中提取第一个数字 但我的正则表达式与第二个数字不匹配 如何捕获这两个数字 注意第二行 第二个元素在这里是 NAN CODE import pandas as pd d
  • 将一个大的 xlsx 文件导入到 R 中?

    我想知道是否有人知道从 大 xlsx 文件 20Mb 导入数据的方法 我尝试使用 xlsx 和 XLConnect 库 不幸的是 两者都使用 rJava 我总是收到相同的错误 gt library XLConnect gt wb lt lo
  • 将英寸高度的字符向量转换为厘米?

    我得到一个字符向量 tibble H c 6 2 5 10 5 5 5 1 5 5 5 4 我想将其转换为厘米 请告知我该怎么做 有几种方法可以使用 1 阅读与fread粘贴到单个字符串后 library data table fread
  • 如何将变量传递给 ddply 中的自定义函数?

    考虑以下数据 d data frame experiment as factor c foo foo foo bar bar si runif 5 ti runif 5 我想进行相关性测试si and ti 对于每个experiment因素
  • R/ggplot2:如何匹配重叠区域图中的图例和绘图颜色?

    我有两个面积图 称为 蓝色 和 绿色 其中green大部分是在blue情节 但在极少数点上 它高于blue阴谋 我想使用透明度说alpha 0 2对于两者 并且还能够为每个指定颜色 我现在的问题是 自从green情节主要是在blue地块 其
  • R 中的频率加权,与 Stata 的结果比较

    我正在尝试分析明尼苏达大学 IPUMS 数据集中的数据1990 年美国人口普查 http usa ipums org usa sampdesc shtml us1990a in R 我正在使用survey http faculty wash
  • 如何解决 R 估计中的整数溢出错误

    我正在尝试使用估计模型speedglm在 R 中 数据集很大 约 6988 万行和 38 列 行数和列数相乘得到约 27 亿 超出了整数限制 我无法提供数据 但以下示例重现了该问题 library speedglm large exampl
  • 使用 ggplot2 在一张画布上绘制多个图形[重复]

    这个问题在这里已经有答案了 我正在尝试根据此表将两个 ggplot2 图合并为一个图 Type RatingA RatingB 1 One 3 36 2 Two 5 53 3 One 5 57 4 One 7 74 5 Three 4 38
  • 删除 .htaccess 中 URL 中各处的多组斜杠

    我目前有一个网站 访客可以访问每个网址 并使用任意数量的斜杠来分隔文件夹名称 例如 如果 URL 应该是 http example com one two three four 然后用户可以通过以下任意方式访问同一页面 http examp

随机推荐

  • 使用CSS制作旋转圆圈动画(百分比)

    我怎样才能制作以下网站上的旋转圆圈http www awwwwards com 对于我的网站 我不需要它是动态的 至少这次不是 我已经尝试了不同的解决方案 包括 Javascript 和 CSS 但我不确定创建此解决方案的最佳方法是什么 m
  • OpenCV 中跳过帧并寻找 RTSP 流的末尾

    我在 Raspberry Pi 上的 OpenCV 3 4 2 中捕获并处理 IP 摄像头 RTSP 流 不幸的是 处理需要相当长的时间 每帧大约 0 2 秒 并且流很快就会延迟 我不介意跳过一些帧 因此我正在寻找一种方法在捕获和处理下一帧
  • 如何获得任务并行库使用的最大并行度?

    我想使用 Parallel invoke 如果我分配 20 个并行任务 则只有 8 个同时运行 我的CPU是http ark intel com products 47925报告的线程数为 8 我假设可以并行运行的任务数与 cpu 线程数有
  • 在哪里可以查找 C++ STL 中向量的 size_type 定义?

    投射我的向量的结果似乎是安全的size 函数到unsigned int 但我怎么能确定呢 我的文档不清楚如何size type被定义为 不要假设容器大小的类型 或在其中键入的任何其他内容 Today 目前最好的解决方案是使用 std vec
  • GBM多项分布,如何使用predict()得到预测类别?

    我正在使用多项式分布gbmR 中的包 当我使用predict函数 我得到一系列值 5 086328 4 738346 8 492738 5 980720 4 351102 4 738044 3 220387 4 732654 但我想得到每个
  • 使用附加字符串本地化 Info.plist 变量

    我正在尝试本地化应用程序的名称 同时仍然能够根据构建配置附加字符串 所以目前它设置为
  • Cordova iOS 插件在构建后失败,除非我先删除平台和插件 JSON

    我有一个 Cordova 3 2 0 项目 我正在使用 XCode 模拟器和通过 USB 的 iPhone 4S 进行测试 当我执行以下命令时 应用程序运行时没有错误 rm rf platforms ios rm plugins ios j
  • 调用 RFC_READ_TABLE 时出现 DATA_BUFFER_EXCEEDED 错误?

    我的 java groovy 程序从用户输入接收表名和表字段 它查询 SAP 中的表并返回其内容 用户输入可能涉及表CDPOS and CDHDR 在阅读 SAP 文档和谷歌搜索后 我发现这些是存储更改文档日志的表 但我没有找到任何可以在j
  • ui-router $stateChangeStart 上的无限循环

    加大力度angular and 用户界面路由器 如果不满足先决条件 则很难重定向到不同的状态 我尝试使用拦截器 如何在角度拦截器中执行重定向 但有人提到处理 stateChangeState 会更合适 但我仍然陷入无限循环 Check he
  • Angular - 组件不同的模板

    我有一个组件 课程 我将此组件用于列表 该列表有时是水平的 有时是垂直的 我可以在组件内部动态选择模板文件吗 Component selector course templateUrl getTemplateFile 像这样的东西将是很棒的
  • Global.asax 中的事件未触发

    在我的 ASP Net 应用程序中 我无法在我的计算机上触发 Global asax 中的事件 例如 Session Start 将不会触发 同样的 Global asax 在我办公室的其他开发机器上运行良好 我努力了 ASP Net 开发
  • 我可以对指向 void 指针的指针使用指针算术吗?

    我知道你不能对 void 指针使用指针算术 但是理论上你可以对指向 void 指针的指针进行指针算术吗 因为sizeof void 会产生一个指针在您的系统上占用多少字节的答案 不允许进行指针运算void 因为void是一个不完整的对象类型
  • 以编程方式初始化 ViewController

    我正在尝试初始化一个UIViewController在我的 Swift 应用程序中 但我面临一个问题 我找不到任何明确的答案 我想从 FlowCoordinator 调用它来初始化控制器 但由于需要 init coder NSCoder 函
  • C++ Switch 无法使用用作 case 的外部定义变量进行编译

    我正在使用 MinGW GNU 编译器编写 C 当我尝试使用外部定义的整数变量作为 switch 语句中的 case 时 就会出现问题 我收到以下编译器错误 case 标签不会减少为整数常量 因为我已将整数变量定义为 extern 我相信它
  • Bootstrap Modals 和 Youtube:自动播放并在关闭时停止

    我需要能够在 Twitter Bootstrap 模式打开时自动播放 YouTube 视频 然后在关闭时停止该视频 我知道这个问题之前已经被问过 但我能找到的答案会导致包含许多视频的页面出现大量 javascript 代码 我正在努力减少膨
  • 如何在 IVY 中没有提供的情况下复制运行时库

    我以为我不需要问这个 但我没有任何进展 这个问题的解答 ivy如何将maven范围映射到ivy配置实际上解决了问题 但在理论部分 我有这样的配置
  • 如何为类的私有和公共成员分配内存

    在类中 私有成员是与公共成员分配在单独的内存中 还是所有成员都按照其定义的顺序分配 例如 class A private int a1 int a2 3 public int z int a3 2 int a4 5 private int
  • System.UnauthorizedAccessException:对路径“...”的访问被拒绝

    我使用 net 使用单击一次安装完成了 C wpf 安装 一切正常 然后我有以下代码 它是已安装程序的一部分 String destinationPath System Windows Forms Application StartupPa
  • 检测输入类型文本的编程更改[重复]

    这个问题在这里已经有答案了 当脚本更改输入类型文本的值时 有没有办法获得通知 I have
  • R:从字符串中删除最后三个点

    我有一个文本数据文件 我可能会用它来读取readLines 每个字符串的初始部分包含很多乱码 后面是我需要的数据 乱码和数据通常由三个点分隔 我想在最后三个点之后分割字符串 或者用某种标记替换最后三个点 告诉 R 将这三个点左侧的所有内容视