Ich habe versucht, eine Funktion zu erstellen, die Semikolon-enthaltende Elemente in einer Datenrahmenspalte durch geteilte Einträge ersetzt, die sich am unteren Ende der Spalte befinden, wobei Basis-R verwendet wird Verwenden Sie diese Funktion mit apply und nehmen Sie die Addition vor, wenn Sie einen Eintrag mit Semikolon erkennen.Geteilte Datenrahmenelemente mit Semikolon in R
Das Hauptproblem mit meinem Code ist, dass es genau den gleichen Datenrahmen ohne zusätzliche Werte zurückgibt.
> df
rs2480711
rs74832092
rs4648658
rs4648659
rs61763535
rs28733941;rs67677371
>x
"rs28733941;rs67677371"
function(x){
semiCols = length(unlist(strsplit(x, ";")))
elementsRs = unlist(strsplit(x, ";"))
if(semiCols>1){
for(i in 1:semiCols){
df = rbind(df, elementsRs[i])
}}}
Ich würde auch gerne wissen, wie kann ich den Code erweitern, um Reihen zu spalten, basierend auf einem Wert alle anderen unverändert bleiben. Zum Beispiel diese
>df
0 rs61763535 T1
1 rs28733941;rs67677371 T2
aussehen wird dieses
>df2
0 rs61763535 T1
1 rs28733941 T2
1 rs67677371 T2
Was ist Ihre erwartete Ausgabe und was ist "x"? – akrun
@Sotos. Versuchte es, aber aus irgendeinem Grund löscht es alle Einträge mit leeren Werten, etwas, das ich wirklich nicht wünsche. – civy
'splatstapshape :: cSplit (df, 'V2', ';', 'lang')' funktioniert für mich – Sotos