簡體   English   中英

將r中的單個列拆分為4個單獨的列

[英]Splitting a single column in r into 4 separate columns

我需要將單個數據框列(ID)分為五個單獨的列(A,B,C,D,E)。 這些列需要按以下方式拆分:

  • A-第一個字母
  • B-所有數字,直到第二個字母
  • C-所有字母,直到最后一個字母
  • D-最后一個號碼
  • E-最后一個字母

這里是一個例子:

之前

ID Conc
1 A01HGF1a  132
2 D02SDV2b  453

A B C D E Conc
1 A 01 HGF 1 a  132
2 D 02 SDV 2 b  453

我嘗試使用tidyr的split(),但無法弄清楚如何正確使用正則表達式。 任何幫助深表感謝!

到目前為止,這是我嘗試過的

`separate(df, ID, into = c("A", "B", "C", "D","E"), sep = "(^.)(\\d+)(\\S+)(\\d+)(\\S+)")`

您可以在此處將sub用於基本R選項:

df$A <- sub("^(\\w).*", "\\1", df$ID)
df$B <- sub("^\\w(\\d+).*", "\\1", df$ID)
df$C <- sub("^\\w\\d+(\\D+).*", "\\1", df$ID)
df$D <- sub(".*?(\\d+)\\D+$", "\\1", df$ID)
df$E <- sub(".*?(\\D+)$", "\\1", df$ID)
df

        ID Conc A  B   C D E
1 A01HGF1a  132 A 01 HGF 1 a
2 D02SDV2b  453 D 02 SDV 2 b

演示版

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM