限制数据框中所有单元格的字符串长度?

2024-06-19

您好,有没有一种方法可以限制 data.frame 中所有列的字符串文本大小,而不必循环遍历每一列并一次使用 str_trunc 之类的东西?例如下面的数据框,我可以将所有文本大小限制为仅 5 个字符,而不必一次只执行一列吗?如果有 50 列,一次截断一列就会很困难。

g1 = data.frame ( 
  gene = c( "aaaaaaa","aaaaaaa","aaaaaaaaaaaa","a","bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"),
  value = c("1fdfdfdsfdsfdsfds","2fdfdfdfdsfds00","fdfdfds3","5ffffffffffff","0")
)

我尝试过类似的事情但失败了。lapply(g1, str_trunc, 5)

如果我可以一次性将数据框中的任何字符串限制为 5 个字符,那就太好了。例如,第一个单元格,第 1 行,第 1 列就是 aaaaa

thanks.


在OP的代码中,str_trunc默认情况下使用ellipsis = "..."。如果我们将其更改为空白(""),它应该给出与上面相同的输出。的输出lapply is a list,所以我们可以将它分配回 data.frame 或换行data.frame来转换list to data.frame

library(stringr)
g1[] <- lapply(g1, str_trunc, 5, ellipsis = "")
g1
#   gene value
#1 aaaaa 1fdfd
#2 aaaaa 2fdfd
#3 aaaaa fdfdf
#4     a 5ffff
#5 bbbbb     0

或者我们可以使用base R通过转换data.frame to matrix并使用substr from base R没有循环

g1[] <- substr(as.matrix(g1), 1, 5)
g1
#   gene value
#1 aaaaa 1fdfd
#2 aaaaa 2fdfd
#3 aaaaa fdfdf
#4     a 5ffff
#5 bbbbb     0

或者使用tidyverse

library(dplyr) #1.0.0
library(stringr)
g1 %>%  
      mutate(across(everything(), str_sub, 1, 5))
#   gene value
#1 aaaaa 1fdfd
#2 aaaaa 2fdfd
#3 aaaaa fdfdf
#4     a 5ffff
#5 bbbbb     0

如果我们有一个dplyr版本<1.0.0,一个选项是mutate_all

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

限制数据框中所有单元格的字符串长度? 的相关文章

  • 替换 R 中的缺失值

    我必须通过 ID 将缺失值替换为最大值 值 如何在 R 中做 ID Value 1 NA 5 15 8 16 6 8 7 65 8 NA 5 25 1 62 6 14 7 NA 9 11 8 12 9 36 1 26 4 13 我首先使用调
  • 将逗号分隔的列条目拆分为行

    我已经找到了同一问题的其他版本 但我无法调整那里为我的问题给出的答案 这是一个旧链接 https stackoverflow com questions 13773770 split comma separated column into
  • 将ggplot中条带标签的位置从顶部更改为底部?

    我知道这不完全是一个数据可视化问题 但老板要求这样做 所以我需要弄清楚是否可以 为 2016 年寻找答案的人提供答案 As of ggplot22 0 切换参数 http docs ggplot2 org current facet gri
  • 使用 knit2wp 更新帖子

    我已经能够使用 knit2wp 成功发布到 WordPress 甚至可以使用图像 即使拥有这样的天赋 我也并非绝对正确 事实上 即使是上面的内容也需要一些工作 我希望稍后能够更新帖子 显然 RWordPress 软件包允许删除帖子 但如果无
  • RcppArmadillo 传递用户定义函数

    考虑以下 R 代码 R version caller lt function x 1 3 fun identity do some other stuff then call the function eval call fun x fun
  • 为不同部分设置 rmarkdown 选项卡颜色

    我想用 Rmarkdown 创建一个 html html 应包含彩色选项卡 根据来自的答案这个问题 https stackoverflow com questions 55276670 coloring tabs in rmarkdown我
  • [R][传单]:点击超链接

    我想在世界地图上添加标记 当用户单击一个标记时 它会将用户引导到另一个网站 而不是弹出窗口 我是这个库的新手 实际上这是我为了解决这个问题而尝试的第一个库 带有超链接标记的交互式地图 供用户单击并转到另一个网站 所以我能做的就是 map l
  • 将列表元素名称作为变量传递给 lapply 中的函数

    我有一个命名的数据列表和一个要应用于数据的自定义函数 Some example data d list lt list a c 1 2 3 b c 4 5 6 c c 7 8 9 A simple function to process s
  • 如何用 df 中的字符替换 NA [重复]

    这个问题在这里已经有答案了 我希望在 df 中将所有 NA 替换为 Not Found 我有这个 df A B 1 NA 2 NA 3 NA 我怎样才能得到那个 A B 1 Not Found 2 Not Found 3 Not Found
  • 如何在 Windows 操作系统上安装 BigMemory 和 bigrf

    我一直在尝试在我的 R 安装上安装 bigmemory 我的操作系统是 windows 7 64 位 我已经在 R V2 15 1 2 15 2 和 3 0 1 64 位上尝试过 但我无法让它工作 我尝试了几种选择 下载当前源并在 R v3
  • glm 起始值不被接受日志链接

    我想运行带有日志链接和偏移量的高斯 GLM 出现以下问题 y lt c 1 1 0 0 t lt c 5 3 2 4 没问题 exp coef glm y 1 offset log t family poisson with family
  • 约束优化 R:另一个例子

    我正在尝试在 R 中执行约束优化 我已经查看了这些帖子和其他一些帖子 R 中的约束优化 https stackoverflow com questions 5436630 constrained optimization in r R 中的
  • 具有变化比例的 gganimate(轴限制)

    我想使用创建一个 gifgganimate 但我的轴范围在一帧中变化很大 这导致所有后续帧都被挤压 In ggplot2的方面 有一个选择scales free 有没有办法让每一帧都有自由比例gganimate 这是一个例子 library
  • Rscript 正在绘制 PDF

    我有一个简单的R http en wikipedia org wiki R 28programming language 29脚本 当它通过 Rscript exe 运行时 默认情况下它会绘制为 PDF 文件 我希望脚本打开一个绘图窗口 我
  • 您使用 Attach() 或按名称或切片调用变量吗?

    许多介绍 R 的书籍和指南都是从附加一个 R 语言的实践开始的 data frame这样您就可以通过名称调用变量 我一直发现用以下方式调用变量是有利的 符号或方括号切片 2 这样我就可以使用多个data frames 而不混淆它们和 或使用
  • R、GeoJSON 和 Leaflet

    我最近从 R Bloggers com 的帖子中了解了 leafletjs com 我想要实现的一个此类教程是使用传单创建交互式分区统计图 http leafletjs com examples choropleth html http l
  • 不同大小组的高效递归随机抽样

    这个问题是我之前关于递归随机抽样问题的后续问题高效的递归随机采样 https stackoverflow com questions 69824065 efficient recursive random sampling 当组大小相同或每
  • lme4:如何指定 2 个与随机截距的相关性,而不添加随机斜率之间的相关性

    重新发布自stats stackexchange com https stats stackexchange com q 195385 33560 我试图在 R 的 lme4 包中指定一个模型 其中随机截距和随机斜率之间有 2 个相关性 但
  • 为 PDF 输出添加 natbib 选项

    有没有办法指定natibib输出 PDF 时的选项bookdown 我希望 tex 输出具有命令 usepackage sort compress natbib 但似乎没有任何方法可以在 YAML 中指定它 我无法将命令添加到我的序言中 因
  • 如何规划庭院灯最有效的路线

    我正在尝试挂一些庭院灯 基于另一个问题 https cs stackexchange com questions 80134 christmas light route efficiency我问 我意识到我需要一种算法来解决路由检查问题 h

随机推荐

  • 如果浏览器在 asp .net 中关闭,请从浏览器中注销?

    我的要求有点复杂 用户正在使用 Web 浏览器访问数据库 而在访问数据库时 如果用户关闭活动页面而不是注销会话 该会话需要自动注销 有人可以指导我如何做这个吗 我在母版页中使用了jquery onbeforeunload 我收到消息离开页面
  • 有没有办法监控页面上运行的 JavaScript 函数?

    有没有办法查看页面上正在执行哪些功能 如果我在页面上加载外部脚本 是否可以动态更改函数的功能或阻止其运行 HTML5 http www w3 org TR html5 scripting 1 html establish script bl
  • Python 内置对象的 __enter__() 和 __exit__() 在哪里定义?

    我读到每次使用 with 时都会调用该对象的 enter 和 exit 方法 我知道对于用户定义的对象 您可以自己定义这些方法 但我不明白这对于 打开 等内置对象 函数甚至测试用例是如何工作的 这段代码按预期工作 我假设它使用 exit 关
  • 有没有一种从 unsigned char* 转换为 char* 的好方法?

    那些天我读了很多关于reinterpret cast lt gt 以及应该如何使用它 并在大多数情况下避免使用它 虽然我明白使用reinterpret cast lt gt 投射自 说unsigned char to char is 实施定
  • 用于在链表中查找结点的生产代码

    我在一次采访中被问到这个问题 我被要求编写代码 用于在 O 1 空间和线性时间的生产环境中在链表 其形式为 Y 形式 双臂不一定相等 中查找结点 我想出了这个解决方案 我以前在某处见过 1 Measure lengths of both l
  • 通过 SO_RCVTIMEO 套接字选项在 Ruby 中设置套接字超时

    我试图通过 SO RCVTIMEO 套接字选项在 Ruby 中设置套接字超时 但它似乎对任何最近的 nix 操作系统都没有影响 使用 Ruby 的 Timeout 模块不是一个选择 因为它需要为每个超时生成和连接线程 这可能会变得昂贵 在需
  • 移动影片剪辑时的视觉错误

    在我尝试创建一个简单的类似乒乓球的游戏时 我遇到了一个非常奇怪的 有时甚至是严重的视觉错误 当我设置球 Flash CS 5 5 库 MovieClip 以相当快的速度在屏幕上移动时 我注意到有时球的边缘会在其移动方向上被短暂切断 当它发生
  • putc 和 ungetc 和有什么区别?

    int ungetc int c FILE fp 将字符 c 推回 fp 并返回 c 或EOF对于一个错误 其中 intputc int c FILE fp 将字符 c 写入文件 fp 并返回写入的字符 或者EOF对于一个错误 这些是 K
  • jQuery Mobile - 停止缓存

    就我而言 链接加载到特殊 div 的包装器中 这些包装器是其链接的父级 我通过pageload event 当 JQuery Mobile 执行 AJAX 请求时一切正常 但是如果我点击访问的链接 jquery mobile不会发送请求 而
  • 缓存 firestore 中 get 的第一个实现

    我希望 firestore 每次都先从缓存中获取数据 根据 Firestore 文档 传递 缓存 或 服务器 选项必须启用相同的功能 下面的例子 db collection cities where capital true get cac
  • 如何模拟OutOfMemory异常

    我需要重构我的项目以使其免受OutOfMemory例外 我的项目中使用了巨大的集合 通过更改一个参数 我可以使我的程序更加准确或使用更少的内存 好吧 这就是背景 我想做的是循环运行例程 使用默认参数运行子例程 抓住OutOfMemory异常
  • 未来如何开发旧版 Firefox 插件?

    火狐浏览器正朝着网络扩展 https developer mozilla org en US Add ons WebExtensions标准承诺提高稳定性 跨浏览器兼容性和更高的安全性 与此同时 他们逐渐放弃对旧版附加组件 引导扩展 附加
  • Google Charts(AreaChart)如何检测缩放变化

    我正在画一个面积图 在覆盖层上有一些标记 我正在使用explorer选项 仅限水平 以便用户放大和缩小 问题是我找不到一种方法来通知缩放更改 以便有机会更新制造商位置 有一个图表范围变化事件 但它不是由 AreaChart 触发的 我尝试检
  • Streamjs和linqjs有什么关系

    读完SICP后 我最近发现streamjs https github com dionyziz stream js 开发商参考linqjs http linqjs codeplex com 作为具有不同语法的替代实现 但我无法建立连接 St
  • ngx-DataTable 对列进行排序无法正常工作 Angular 4

    虽然我对角度非常陌生 但我在使用 ngx DataTable 时遇到了一些困难 我使用简单的 ngx DataTable 进行简单的操作 问题出在列上 尽管我已将 attr 声明为 sortable true 但排序不起作用 这是代码 表定
  • 正确使用 JDBC 连接池 (Glassfish)

    我需要在 Java Web 服务中作为会话 bean 实现数据库连接 但我不确定我这样做是否正确 我创建了一个类 public final class SQLUtils private static DataSource m ds null
  • Python Selenium 打印另存为 PDF 等待文件名输入

    我正在尝试通过打印对话框将网站另存为 PDF 我的代码允许我另存为pdf 但要求我输入文件名 我不知道如何将文件名传递到弹出框 附上我的代码 import time from selenium import webdriver import
  • 当页面上已有tinymce实例时,动态添加tinymce编辑器

    这是我已经问过的这个问题的后续 动态添加tinymce编辑器 https stackoverflow com questions 19157574 add a tinymce editor dynamically 我有一个包含编辑器的页面
  • 具有材料设计的Angularjs无法实例化模块ngMaterial

    我已经使用 Bower 安装了 AngularJS 和 MaterialJS 凉亭安装角材料 并将 ngMaterial 注入我的应用程序 但出现此错误 Uncaught Error injector modulerr Failed to
  • 限制数据框中所有单元格的字符串长度?

    您好 有没有一种方法可以限制 data frame 中所有列的字符串文本大小 而不必循环遍历每一列并一次使用 str trunc 之类的东西 例如下面的数据框 我可以将所有文本大小限制为仅 5 个字符 而不必一次只执行一列吗 如果有 50