Pet*_*ung 2 regex split r dataframe
我创建了一个数据框,现在我想通过拆分第一列中的“:”来分隔一个新列。
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
Run Code Online (Sandbox Code Playgroud)
我试过了
strsplit(df$V1, split = "\\:")
Run Code Online (Sandbox Code Playgroud)
但是 strsplit(t$V1, split = "\:") 中的错误:出现非字符参数。谢谢你。
错误是因为我们有一个 class 变量factor
。将其转换为character
它应该可以工作
lst <- strsplit(as.character(df$V1), split = ":", fixed = TRUE)
Run Code Online (Sandbox Code Playgroud)
如果我们需要创建两列,一种简单的方法是使用 read.table
df1 <- read.table(text = as.character(df$V1), sep=":", stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
或者使用separate
从tidyr
library(tidyr)
separate(df1, V1, into = c("V1", "V2"))
Run Code Online (Sandbox Code Playgroud)