如何在R中拆分列?

2024-03-28

我也想以同样的方式拆分同一列。我想按如下方式执行此操作,但它无法正常工作。

我使用的代码是t38kbat = read.table("test38kbat.txt", header = FALSE) head(t38kbat)

t38kbat <- separate (t38kbat, V2, c("sp", "id", "gene_organism"), \\"|") t38kbat <- separate (t38kbat, gene_organism, c("gene", "organism"), \\"_") t38kbat <- unite (t38kbat, sp, sp, id, sep = "|")

当我运行脚本时收到错误

错误:“t38kbat

谁能指导我如何解决它。 谢谢


在基数 R 中,strsplit命令将对这种形式的向量进行操作,但会生成一个列表,您必须进一步简化该列表。

In the tidyr包里有一个separate函数将保留事物的数据框架性质。对于这个用例来说,这可能更可取。

例如

> library(tidyr)
> a <- data.frame(x=1:3, y=c("a|b|c", "b|c|d", "d|e|f"))
> a
  x     y
1 1 a|b|c
2 2 b|c|d
3 3 d|e|f
> separate(a, y, c("a","b","c"), '\\|')
  x a b c
1 1 a b c
2 2 b c d
3 3 d e f

为了充实strsplit稍微解决一下,你将不得不使用一个有点尴尬的组合cbinds到那里

> cbind(a, do.call(cbind, strsplit(as.character(a$y), "\\|")))
  x     y 1 2 3
1 1 a|b|c a b d
2 2 b|c|d b c e
3 3 d|e|f c d f

编辑:还应该注意,如果您使用tidyr方法,你将不得不递归地使用它,可能与unite,以获得完整的行为。就像是

df <- separate(df, col, c("type", "subtype", "rawclass"), "\\|")
df <- separate(df, rawclass, c("class", "subclass"), "_")
df <- unite(df, sp, type, subtype, sep="|")

假设原始列名为col,以及最终标题的虚构名称。

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

如何在R中拆分列? 的相关文章

随机推荐

  • 删除 Ember 数据中 POST/PUT 操作的 JSON 根元素

    我正在使用一个 Web 服务 该服务在 POST PUT 动词中需要如下所示的 JSON id CACTU companyName Cactus Comidas para llevar contactName Patricio Simpso
  • 字典中的差异

    我试图找出字典中的差异 是否添加或删除了某些内容以及从什么内容中添加或删除了某些内容 这是一个添加值的情况 original 0 None 1 False 2 16 new 0 None 1 False 2 2 16 difference
  • 从构建中获取 BuildAgent 信息

    我有一个 IBuildDetail 变量 其中包含我需要的构建信息 好的 但是当我检查属性 BuildAgent 时 它显示 build BuildAgent 抛出了类型为 System NotImplementedException 的异
  • Windows CMD 中的创建日期

    使用 Windows 批处理 此函数返回文件的创建日期 creationDate set CompareFile 1 echo CompareFile for f skip 5 tokens 1 2 4 5 delims a in dir
  • 如何获取内存中对象的数据集?

    有谁知道与泛型和 RTTI 一起使用的 TDataset 后代 以便我可以编写这样的代码 并在 GUI 中使用数据感知组件 ds TDataset
  • 如何使用 Clap Args 的内部库 Enum

    我目前正在研究一个铁锈端口 https github com JuxhinDB twistrs某证券的tool https github com elceef dnstwist 与 Rust 的指南一致 我想将核心库隔离到自己的包中 以便我
  • 如何以编程方式删除 Groovy 中的默认导入?

    默认情况下 一些包是在 Groovy 类中导入的 我知道您可以使用 ImportCustomizer 添加新的 但有没有一种方法可以以编程方式删除它们 预先感谢您的回答 不 如果你查看代码 你会发现标准进口 http groovy code
  • 使用java库访问谷歌云存储遇到“403禁止”

    我正在尝试在 scala 中使用谷歌云存储 java 库来列出存储桶中的项目 val credential new GoogleCredential Builder setTransport GoogleNetHttpTransport n
  • Set-AzStorageBlobContent 引发异常:路径中存在非法字符

    我正在将 Azure 部署脚本从 AzureRM 迁移到 Az 新模块似乎无法打开文件 有任何想法吗 我尝试用正斜杠替换反斜杠 我什至从脚本所在的文件夹中调用它 所以我不需要向它传递完整的文件名 它会正确地将其解析为全名 但它仍然无法打开它
  • julia变量的范围:在开放表达式的循环内重新分配

    我正在努力在 Julia 的循环中重新分配变量 我有一个以下的例子 infile test txt feature for ln in 1 3 println feature feature end open infile do f if
  • Java解析相对路径

    您将如何解决相对路径 我正在寻找的是一个类似于php的realpath的功能 该函数只需要删除所有 以便输入字符串可以安全地与其他字符串一起使用 一般的方式是使用File类获取规范路径 https docs oracle com javas
  • 如何将字符串转换为小数点后三位的小数?

    string num 23 6 我想知道如何将其转换为小数点后三位 喜欢 decimal nn 23 600 有什么方法吗 我尽力了 首先你的string num 23 6 won t even编译 您需要在字符串中使用双引号 例如stri
  • 混合模式内容 - 如何从 h1 中选择文本但不包含其子元素的文本?

    我在打印简单文本时遇到问题 h1 元素 require nokogiri doc Nokogiri HTML h1 em Name em A Johnson h1 puts doc at xpath h1 content 它输出 NameA
  • 什么是 dict_keys、dict_items 和 dict_values?

    我在使用的时候遇到过这三种类型collections Counter的 viewkeys viewitems 和 viewvalues 方法 这三个方法返回的值都是类型dict keys dict items and dict values
  • 如何将TextView旋转90度并显示[重复]

    这个问题在这里已经有答案了 我在图表页面遇到一种情况LinearLayout应该显示TextView旋转 90 度 尝试这个
  • 在java中使用接口的实现类型

    我想创建一个接口 强制实现它的每个类对于实现的类的类型具有特定的功能 假设我有类 MyClassA MyClassB MyClassC 等 它们都需要自己类型的函数 在我的A班 public class MyClassA implement
  • TFS 2012 中的 SVN 标记等效项

    我最近迁移到TFS 2012我曾与SVN许久 在 SVN 中我使用了 Tags 标记一些重要的 检查站 开发 即当我完成一个软件版本 alpha beta 时 我创建了一个Tag对于那个版本 如果发生任何错误 我会 受保护的 现在 我需要在
  • knitr 如何将警告信息保留在盒子内?

    我正在使用 knit 编写教程 我想展示学生可能遇到的一些警告和错误 虽然我能够使用以下命令很好地显示框中的代码块tidy TRUE选项 我不明白如何处理警告和错误的显示 例如 如果我有以下代码 documentclass article
  • 如何将某个 S3 文件标记为公开

    如何通过 Web 服务 API 将某个 S3 文件标记为公开 使用方法setCannedAcl CannedAccessControlList PublicRead 更改访问控制权限 阅读 java 文档以获取详细信息here http d
  • 如何在R中拆分列?

    我也想以同样的方式拆分同一列 我想按如下方式执行此操作 但它无法正常工作 我使用的代码是t38kbat read table test38kbat txt header FALSE head t38kbat t38kbat lt separ