【问题标题】:Loops in data using str_replace_all and strsplit in R在 R 中使用 str_replace_all 和 strsplit 循环数据
【发布时间】:2021-06-01 09:58:37
【问题描述】:

我有一个数据框,其中有一列包含下一个字符:

 head(example)
  X.       S10   tactagcaatacgcttgcgttcggtggttaagtatgtataatgcgcgggcttgtcgt
1  +      AM \t\ttgctatcctgacagttgtcacgctgattggtgtcgttacaatctaacgcatcgccaa
2  +      AR \t\tgtactagagaactagtgcattagcttatttttttgttatcatgctaaccacccggcg
3  +     DE  \taattgtgatgtgtatcgaagtgtgttgcggagtagatgttagaatactaacaaactc

So I want replace each letter by specific chain. For example: when it appears "a" i want put 0,0,0,1. But I get it

str_replace_all(例如, "[a]", c("0","0","0","1")) [1] "tgct0tcctg0c0gttgtc0cgctg0ttggtgtcgtt0c00tct00cgc0tcgcc00"


Also I need separate each value in one column. 

【问题讨论】:

  • 你需要str_replace_all(example, "a", '0001')
  • 是的,正好用 t 字符替换为“1000”
  • 这些列是 'S10'、'AM'、'AR'、'DE'
  • 不,列是 tactagcaatacgcttgcgttcggtggttaagtatgtataatgcgcgggcttgtcg

标签: r string loops replace strsplit


【解决方案1】:

我们可以使用带有str_replace_all的命名向量

library(stringr)
str_replace_all(example, setNames( c('0001', '1000'), c('a', 't'))) 

它将字母“a”、“t”分别替换为值“0001”和“1000”

【讨论】:

  • 它的作品,但我怎样才能使数据框中的列的循环??
  • @RaqS。您不需要任何循环,因为该函数是矢量化的,即str_replace_all(df1$col, setNames( c('0001', '1000'), c('a', 't')))
  • 在这种情况下是一个向量,但我提取了我的数据框。我编辑我的问题
  • @RaqS 您可以使用dput 更新帖子吗,因为不清楚您的数据是在列还是在行中
  • 完善它的世界@akrun
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
相关资源
最近更新 更多