【问题标题】:R strsplit function in a data frame数据框中的R strsplit函数
【发布时间】:2017-02-07 07:07:51
【问题描述】:

我创建了一个数据框,现在我想通过拆分第一列中的“:”来分隔一个新列。

data frame:
unc.edu.0057f9f7-779b-4914-8290-abbad2a0d81e.2556919.rsem.genes.normalized_results:ASL|435  214.4421
unc.edu.0057f9f7-779b-4914-8290-abbad2a0d81e.2556919.rsem.genes.normalized_results:ASS1|445 2863.8055
unc.edu.0057f9f7-779b-4914-8290-abbad2a0d81e.2556919.rsem.genes.normalized_results:OTC|5009 0
unc.edu.050c2191-b96c-41e7-abdb-e52cbe82f268.2456235.rsem.genes.normalized_results:ASL|435  332.7522
unc.edu.050c2191-b96c-41e7-abdb-e52cbe82f268.2456235.rsem.genes.normalized_results:ASS1|445 3322.629
unc.edu.050c2191-b96c-41e7-abdb-e52cbe82f268.2456235.rsem.genes.normalized_results:OTC|5009 0

desired output:
unc.edu.0057f9f7-779b-4914-8290-abbad2a0d81e.2556919.rsem.genes.normalized_results  ASL|435 214.4421
unc.edu.0057f9f7-779b-4914-8290-abbad2a0d81e.2556919.rsem.genes.normalized_results  ASS1|445    2863.8055
unc.edu.0057f9f7-779b-4914-8290-abbad2a0d81e.2556919.rsem.genes.normalized_results  OTC|5009    0
unc.edu.050c2191-b96c-41e7-abdb-e52cbe82f268.2456235.rsem.genes.normalized_results  ASL|435 332.7522
unc.edu.050c2191-b96c-41e7-abdb-e52cbe82f268.2456235.rsem.genes.normalized_results  ASS1|445    3322.629
unc.edu.050c2191-b96c-41e7-abdb-e52cbe82f268.2456235.rsem.genes.normalized_results  OTC|5009    0

我试过了

strsplit(df$V1, split = "\\:")

但是 strsplit(t$V1, split = "\:") 中的错误:出现非字符参数。谢谢你。

【问题讨论】:

  • 确保V1 列属于character 类而不是factor

标签: r regex dataframe split


【解决方案1】:
tidyr::separate(data = df, col = V1, into = c('a', 'b'), sep = ':')

【讨论】:

    【解决方案2】:

    错误是因为我们有一个factor 类的变量。将其转换为character,它应该可以工作

    lst <- strsplit(as.character(df$V1), split = ":", fixed = TRUE)
    

    如果我们需要创建两列,一种简单的方法是使用read.table

    df1 <- read.table(text = as.character(df$V1), sep=":", stringsAsFactors=FALSE)
    

    或者使用来自tidyrseparate

    library(tidyr)
    separate(df1, V1, into = c("V1", "V2"))
    

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 2019-02-24
      • 2018-04-11
      • 1970-01-01
      • 2013-03-04
      • 2021-06-01
      • 2021-09-15
      • 1970-01-01
      • 2021-07-27
      相关资源
      最近更新 更多