Seite 1 von 1

Elliminierung von Anführungszeichen

Verfasst: Do Jul 27, 2023 10:17 am
von wbart
Hallo,
Nach dem Import einer Datei sind durch Leerzeichen in den Spaltenüberschriften Anführungszeichen entstanden.

Code: Alles auswählen

SAM_1_vs_2_orig
# A tibble: 212 x 18
    SeqID SeqName      `3 h`  `20 h` `1 Avs-0h` `1 Bvs-0h` `1 Cvs-0h` `2 Avs-0h` `2 Bvs-0h` `2 Cvs-0h` `3 Avs-0h`
    <dbl> <chr>        <chr> <chr>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
 1 669261 IL5RA        NA    X         -4.13     -3.77     -4.00    -0.911     3.90     -0.766    -1.77 
 2 654578 AF210649     X     NA        -1.96     -4.39     -4.54     0.111     0.007     1.08      0.081
 3 669261 IL5RA        X     NA        -3.72     -4.94     -3.12     0.85     -0.13      0.461    -2.08 
Ich habe die Leerzeichen eliminiert mit:

Code: Alles auswählen

 setNames(gsub(" ", "", names(.)))
Dann habe ich versucht die Anführungszeichen weg zu bekommen mit

Code: Alles auswählen

 setNames(gsub("'", "", names(.)))
oder

Code: Alles auswählen

 make.names(colnames(SAM_1_vs_2_orig))
Beides hat leider nicht funktioniert. Wie bekomme ich die Anführungszeichen weg?

VG
wbart

Re: Elliminierung von Anführungszeichen

Verfasst: Do Jul 27, 2023 6:57 pm
von Juergen
Hallo,
leider ist dein Beispiel nicht ausführbar und somit nicht nachvollziehbar.
Oder du versuchst es unter :
https://methodenlehre.github.io/einfueh ... verse.html "rename"
oder gleich über regexp

Wahrscheinlich sind die " ' '" nicht innerhalb von R entstanden, sondern beim importieren der Daten "übriggeblieben".

VG Jürgen

Edit:Ergänzung

Re: Elliminierung von Anführungszeichen

Verfasst: Do Jul 27, 2023 7:36 pm
von bigben
Für mich sieht es so aus, als wolltest Du die falschen Anführungszeichen eliminieren: In den Spaltenüberschriften sind die etwas schräg nach rechts unten ("backticks"), in Deinem gsub-Aufruf lotrecht nach unten. Das ist das falsche Zeichen!

LG, Bernhard

Re: Elliminierung von Anführungszeichen

Verfasst: Mi Aug 02, 2023 1:55 pm
von wbart
@Juergen du hast recht diese Tabell ist durch import aus Excel enstanden. Daher kann ich sie auch nicht nachbilden. Das Problem ist sogar so hartnäckig, das wenn ich die colnames manuell hinzufüge die Zeichen bleiben.

Code: Alles auswählen

colnames(SAM_1_vs_2_TEST) <-
  c(
    "id",
    "SeqName",
    "3h"  ,
    "20h" ,
    "1Avs_0h"  ,
  )
etc.

@bigben das hatte ich gar nicht gesehen. Die Korrektur hat aber leider auch nichts gebracht.

Re: Elliminierung von Anführungszeichen

Verfasst: Mi Aug 02, 2023 2:23 pm
von jogo
Hallo wbart,

sind nach dem Setzen der Namen per colnames<-() alles Spalten noch mit Backticks oder nur die, die keine gültigen Objektnamen sind (z.B. 3h und 20h)? Bei einem Dataframe muss man berücksichtigen, dass auch per Dataframe$Spaltenname auf eine Spalte zugegriffen werden kann. Dafür müsste Spaltenname ein regulärer Bezeichner sein, sonst sind Backticks fällig.

Und wie schaut es aus, wenn Du kein Tibble sondern erstmal nur einen normalen Dataframe erzeugst?

Gruß, Jörg

Re: Elliminierung von Anführungszeichen

Verfasst: Do Aug 03, 2023 10:29 am
von bigben
wbart hat geschrieben: Mi Aug 02, 2023 1:55 pm Daher kann ich sie auch nicht nachbilden. Das Problem ist sogar so hartnäckig, ...
Die Korrektur hat aber leider auch nichts gebracht.
Jetzt ist der Code mindestens bezüglich der Backticks verändert, wir wissen nicht, wie er jetzt aussieht. Warum man das nicht mittels dput reproduzierbar machen kann verstehe ich nicht.

LG, Bernhard