Ho un dataframe (TBB) come segueTrova espressione regolare in una colonna e aggiungere una nuova colonna nella stessa dataframe
X.CHROM POS INFO
chr1 134324 SAMPLE=LNGHJ;
chr2 2333 SAMPLE=dd;GERP;.;
chr2 3334 SAMPLE=;GERP;DDS;CDC=dd;
vorrei estrarre tutto tra ogni punto e virgola e metterlo nella propria colonna in modo che il risultato sarebbe simile
X.CHROM POS INFO
chr1 134324 SAMPLE=LNGHJ; SAMPLE=LNGHJ
chr2 2333 SAMPLE=dd;GERP;DDS=3; SAMPLE=dd GERP DDS=3
chr2 3334 SAMPLE=;GERP;DDS; SAMPLE= GERP DDS
ho provato questo
TBB3 <- TBB[grep("SAMPLE.*?;", TBB$INFO), ]
TBB4<-cbind(TBB3,TBB)
ma le colonne sono dalla parte del torto dimensioni relative tra loro e ovviamente dovrei ripetere questo per ogni parola dopo un punto e virgola quindi non molto efficiente.
e Autore discussione - avevo bisogno di soluzione simile durante il fine settimana (ma metterla in attesa a causa di vacanze) , quindi grazie! Tuttavia, nel post originale ci sono 4 "elementi" tra i punti e virgola in fila con '3334', mentre le altre righe ne hanno 3. Ciò interromperà la generalità? –
@AlexeyFerapontov non frenerà, ma creerà una voce separata per '.' se questo è ciò che intendi. Anche se questo potrebbe essere trattato anche con una regex corretta, immagino. –
Ottimo! Grazie! –