定期分割字符串

2024-01-14

我想定期分割字符串。我的问题与这个问题几乎相同:如何将一个字符串分割成给定长度的子串? https://stackoverflow.com/questions/11619616/how-to-split-a-string-into-substrings-of-a-given-length除了我在数据集中有一列字符串而不是只有一个字符串。

这是一个示例数据集:

df = read.table(text = "
my.id   X1    
010101   1
010102   1
010103   1
010104   1
020101   1
020112   1
021701   0
021802   0
133301   0
133302   0  
241114   0
241215   0
", header = TRUE, colClasses=c('character', 'numeric'), stringsAsFactors = FALSE)

这是期望的结果。我更愿意删除前导零,如下所示:

desired.result = read.table(text = "
A1 A2 A3   X1
 1  1  1   1
 1  1  2   1
 1  1  3   1
 1  1  4   1
 2  1  1   1
 2  1 12   1
 2 17  1   0
 2 18  2   0
13 33  1   0
13 33  2   0
24 11 14   0
24 12 15   0
", header = TRUE, colClasses=c('numeric', 'numeric', 'numeric', 'numeric'), stringsAsFactors = FALSE)

这是一个似乎很接近的循环,也许我可以使用它。但是,我认为可能有一种更有效的方法。

for(i in 1:nrow(df)) {
     print(substring(df$my.id[i], seq(1, 5, 2), seq(2, 6, 2)))
}

This apply声明不起作用:

apply(df$my.id, 1,  function(x) substring(df$my.id[x], seq(1, 5, 2), seq(2, 6, 2))   )

感谢您的任何建议。我更喜欢基于 R 的解决方案。


我发现read.fwf应用于一个textConnection是解决此问题的各种方法中最有效且易于理解的一种。它具有内置于 read.* 函数中的自动类检测的优点。

cbind( read.fwf(file=textConnection(df$my.id), 
              widths=c(2,2,2), col.names=paste0("A", 1:3)), 
     X1=df$X1)
#-----------
   A1 A2 A3 X1
1   1  1  1  1
2   1  1  2  1
3   1  1  3  1
4   1  1  4  1
5   2  1  1  1
6   2  1 12  1
7   2 17  1  0
8   2 18  2  0
9  13 33  1  0
10 13 33  2  0
11 24 11 14  0
12 24 12 15  0

(我相信大约 6 年前我从 Rhelp 上的 Gabor Grothendieck 那里学到了这一点。)

如果您更喜欢正则表达式策略,请查看此策略,该策略每两个位置插入一个选项卡并通过 read.table 运行它。非常紧凑:

read.table(text=gsub('(.{2})','\\1\t',df$my.id) )
#---------
   V1 V2 V3
1   1  1  1
2   1  1  2
3   1  1  3
4   1  1  4
5   2  1  1
6   2  1 12
7   2 17  1
8   2 18  2
9  13 33  1
10 13 33  2
11 24 11 14
12 24 12 15
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定期分割字符串 的相关文章

  • R 可以创建带有可单击条形图的条形图图像以插入网页吗?

    我知道如何创建条形图 以及如何将其粘贴在网页上 例如 使用hwriteImage in the 作家包 http www embl de gpau hwriter 我想要的是每个栏都是一个在鼠标悬停时突出显示的区域 并且每个栏在单击时都有不
  • 将 Excel 范围转换为 VBA 字符串

    我想将给定范围内的值转换为 VBA 字符串 其中原始单元格值由任何选定的列分隔符和行分隔符分隔 分隔符可以是一个字符或更长的字符串 行分隔符是行末尾的字符串 该字符串应该像我们从左上角 从左到右 到右下角读取文本一样完成 以下是范围 A1
  • R 闪亮仪表板中的动态重复条件面板

    我正在尝试创建一个动态条件面板 所以我的条件如下 在用户界面中输入 selectInput inpt Input Number seq 1 50 1 selectize FALSE 我的条件面板 UI 输入是 conditionalPane
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc
  • 多个动态滤镜更新闪亮

    我希望能够让 UI 输入闪亮 并根据用户之前的选择进行自我更新 因此 在下面的示例中 预期的行为是用户选择cyl vsor carb那么这将 过滤数据集mtcars用于创建绘图 即用户根据过滤条件调整绘图并 更新其他过滤器中的剩余输入选择
  • 清洁琴弦的更好方法?

    我正在使用这种方法来清理字符串 public static string CleanString string dirtyString string removeChars lt gt string result dirtyString f
  • .join() 方法到底是做什么的?

    我对 Python 还很陌生 并且完全困惑 join 我读过的是连接字符串的首选方法 I tried strid repr 595 print array array c random sample string ascii letters
  • R Shiny:如何将无功值从闪亮模块返回到主服务器功能?

    我有一个简单的玩具示例 它使用 add removeBtn 模块在 第一个 模块中添加和删除 UI 我需要跟踪单击 添加 删除 的次数 如果我不使用模块 这很容易 但我试图在嵌套模块的上下文中执行此操作 代码如下 但基本上 我似乎无法访问主
  • R - 重塑 - 熔化错误

    我正在尝试融化数据框 但出现了这个奇怪的错误 有什么想法吗 str zx7 data frame 519 obs of 5 variables calday new Date format 2011 01 03 2011 01 04 201
  • 在r中的某个阈值处破坏 cumsum() 函数

    例如我有以下代码 cumsum 1 100 我想打破它 如果一个元素 i 1 大于3000 我怎样才能做到这一点 因此 而不是这个结果 1 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 15
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • 使用选定因子水平的值向 ggplot-barchart 添加水平线

    在这个情节中 df lt data frame factor as factor c rep A 3 rep B 3 Treatment c rep c A B C 2 values runif 6 0 1 ggplot df aes Tr
  • 类型错误:“datetime.datetime”和“str”的实例之间不支持“>”

    我是 python 日期和时间类型的新手 我有一个日期值 date 2018 11 10 10 55 31 00 00 我需要检查该日期值是否超过 90 天 我试过 from datetime import datetime from da
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o
  • T-SQL:如何获取字符串的确切字符长度?

    我正在为预先没有数据类型信息的表生成 T SQL SELECT 语句 在这些语句中 我需要执行取决于表列的原始值的长度的字符串操作操作 一个示例 但不是唯一的示例 是在字符串中的特定位置插入一些文本 包括将其插入末尾的选项 SELECT C
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供
  • case_when 与部分字符串匹配和 contains()

    我正在使用一个数据集 其中有许多名为 status1 status2 等的列 在这些列中 它表示某人是否豁免 完整 注册等 不幸的是 豁免投入并不一致 这是一个示例 library dplyr problem lt tibble perso

随机推荐

  • urllib2 中重复主机查找失败

    我的代码使用 Python 的 urllib2 在多个线程中发出许多 HTTP GET 请求 将响应写入文件 每个线程一个 在执行过程中 看起来许多主机查找失败 导致名称或服务未知错误 请参阅附加的错误日志以获取示例 这是由于 DNS 服务
  • Google Analytics API 在示例代码中返回 401

    我正在尝试从谷歌分析的内容实验中检索数据 我正在使用以下代码 我的信用良好 并且已针对这篇文章进行了审查
  • 查找 exe 是否动态链接(Windows)

    windows下如何判断一个exe是动态链接还是静态链接 所有 Windows 应用程序都动态链接到 Windows API 如果您需要确定特定的非 Windows 库 如 libxml 或类似库 的链接方式 Visual Studio 包
  • 使用 YouTube API v3 检查视频是否有年龄限制

    有没有办法使用 YouTube API v3 来检查视频是否有年龄限制 查看文档我无法确认这一点 我发现了一些与此相关的内容 请检查 https www googleapis com youtube v3 videos part conte
  • 错误 [ERR_REQUIRE_ESM]:如何在节点 12 中使用 es6 模块?

    From https 2ality com 2019 04 nodejs esm impl html https 2ality com 2019 04 nodejs esm impl htmlNode 12应该支持es6模块 但是 我不断收
  • python-tz 是我错了还是它是一个错误

    这似乎有点奇怪 当我想用 pytz 获取欧洲 巴黎时区时 它让我进入 PMT 时区 而不是 GMT 1 当它似乎适用于欧洲 柏林时 不清楚 看看这个片段 usr bin python import os import datetime fr
  • `numpy.argmax()` 的理论平均情况运行时复杂度

    我正在看代码numpy argmax功能 我很困惑哪种数据结构numpy维持为argmax功能 https numpy org doc stable reference generated numpy argmax html https n
  • 使用 VS 项目检查代码的 xslt 将 Xml 转换为 html

    我有一个InspectionResults xml当我运行时生成的inspectcode exe from JetbrainsCommandLine Tool Analysis 有没有xslt提供的文件Jetbrains将此 xml 转换为
  • 使用 setuptools 创建 python 可执行文件

    我有一个小的 python 应用程序 我想将其制作为类 UNIX 系统的可下载 可安装的可执行文件 我的印象是安装工具将是实现这一目标的最佳方法 但不知何故 这似乎不是一项常见任务 我的目录结构如下所示 myappname setup py
  • Kafka 连接到节点 ubuntukafka 时出错:9092(id:0 机架:null)(org.apache.kafka.clients.NetworkClient)java.net.UnknownHostException:

    我在 VirtualBox 来宾上有两台服务器 每个服务器都是 ubuntu 我可以从我的主机通过 SSH 连接到两台机器 以及两台机器之间的 SSH 这样它们都具有 natnetwork 我在一台服务器 kafka 上运行 如下所述 ht
  • Python 格式最佳实践

    我刚刚熟悉 Python 并且有一个关于在字符串上使用 format 的最佳实践 或至少是常见实践 的问题 我的问题主要是关于何时使用空白大括号 索引号和名称 例如 如果您想将一个变量包含在字符串中 您会选择哪一个 print I Stac
  • NASM:磁盘读取超时

    尝试从磁盘 从同一文件 读取数据 将另外 2 个 512 字节扇区加载到内存中 磁盘读取功能如下 read DH sectors to ES BX from drive DL disk read push dx push bx Tried
  • Google Apps 脚本 location.reload 在网络应用程序中

    我正在使用一个 GAS Web 应用程序 当用户执行某些操作 例如单击特定的 div 时 该应用程序需要刷新其内容 在客户端 我有一个从 onclick 调用的脚本 google script run withSuccessHandler
  • 在 swift 3 iOS 中实现谷歌翻译 api

    你好 我是 iOS 开发新手 我正在尝试在我的应用程序中实现谷歌翻译 API 我从GitHub上在线找到了一些示例代码https github com prine ROGoogleTranslate https github com pri
  • 无法更改 rgl 图中的文本大小

    我在更改使用 rgl 包生成的 3d 绘图的文本大小时遇到 问题 一切工作正常 但我无法有效地更改 3d 对象的 cex 属性 我在 64 位 Ubuntu 10 04 LTS 2 6 32 37 generic 下运行 R 2 14 1
  • 构造函数中的同步以使其发生在之前

    我有一个关于如何通过 Java 内存模型保证对象是线程安全的问题 我读过很多文章 说在构造函数中编写同步作用域没有意义 但为什么没有意义呢 是的 确实 只要正在构造的对象不在线程之间共享 这不应该是 除了构造线程之外 没有任何线程可以到达任
  • 与 ARM LDR 指令关联的哈希 (#) 值是什么意思?

    我正在尝试调试我的应用程序中遇到的崩溃 堆栈跟踪指向具有以下格式的 LDR 指令 感谢反汇编程序 LDR R3 R0 4 我的问题是关于源组件的 第二个参数中的 4是什么意思 我假设它是某种偏移量 但我还没有找到支持 LDR 指令的文档 它
  • DataTable 和线程安全

    我将 DataTable 存储在 ASP NET Cache 属性中 可以对该 DataTable 执行的操作有 绑定到网格控件 第 3 方网格内部管理数据源对象 回发后其 DataSource 为 NULL 我假设一旦绑定数据 它就不再使
  • MavenProject:获取在我的插件上使用的可用类

    我正在按照描述加载 Maven 项目here https stackoverflow com questions 4381460 get mavenproject from just the pom xml pom parser 我正在尝试
  • 定期分割字符串

    我想定期分割字符串 我的问题与这个问题几乎相同 如何将一个字符串分割成给定长度的子串 https stackoverflow com questions 11619616 how to split a string into substri