2013-04-16 15 views
5

Ich habe ein Datenframe mit mehreren Spalten und ich möchte die Punkte auf den Spaltennamen entfernen. Die Daten sind wie folgt:Entfernen Sie Punkte aus den Spaltennamen in R

structure(list(JulDay = c(260.0208435, 260.0416565, 260.0625, 
260.0833435, 260.1041565, 260.125), i.46.j.8.k.1 = c(17.99964905, 
18.5903511, 22.93223381, 25.75687981, 25.78559113, 25.8169651 
), i.47.j.8.k.1 = c(18.36571884, 21.15985107, 24.80698013, 25.75730324, 
25.78366089, 25.65381622), i.48.j.8.k.1 = c(18.45543289, 22.02331543, 
24.99463654, 25.5712738, 25.64232635, 25.66119385), i.46.j.8.k.2 = c(17.99798965, 
18.60897827, 22.95389748, 25.75719261, 25.78653336, 25.81692505 
), i.47.j.8.k.2 = c(18.36762619, 21.17233467, 24.82248497, 25.75767899, 
25.7840023, 25.64115906), i.48.j.8.k.2 = c(18.45938683, 22.04619026, 
24.9859066, 25.56440544, 25.63998032, 25.66089439), i.46.j.8.k.3 = c(17.99430084, 
17.92090797, 19.67384911, 21.70389938, 23.67287827, 24.04380417 
), i.47.j.8.k.3 = c(18.36631203, 19.82550049, 21.42166328, 23.76496887, 
24.87460899, 25.41026688), i.48.j.8.k.3 = c(18.44684792, 20.60981369, 
22.68632317, 24.1877079, 25.12503052, 24.99880028), i.46.j.8.k.4 = c(17.98368073, 
17.92047691, 18.11532974, 18.67082596, 20.907, 21.7181263 
), i.47.j.8.k.4 = c(18.33089066, 18.41581535, 18.53464127, 19.18972206, 
20.14752388, 20.11002922), i.48.j.8.k.4 = c(18.21522522, 18.52231598, 
19.21397209, 19.58755302, 20.11982536, 21.28104591)), .Names = c("JulDay", 
"i.46.j.8.k.1", "i.47.j.8.k.1", "i.48.j.8.k.1", "i.46.j.8.k.2", 
"i.47.j.8.k.2", "i.48.j.8.k.2", "i.46.j.8.k.3", "i.47.j.8.k.3", 
"i.48.j.8.k.3", "i.46.j.8.k.4", "i.47.j.8.k.4", "i.48.j.8.k.4" 
), row.names = c(NA, 6L), class = "data.frame") 

Kann mir jemand wissen, wie man die Punkte aus Col-Namen entfernen? Vielen Dank. Ich möchte etwas wie i46j8k1, i47j8k1, i48j8k1. Für diesen einfachen Datensatz könnte ich den Namen manuell ersetzen, aber ich muss dies für mehrere Datensätze tun.

Antwort

17

Eine einfache Möglichkeit ist gsub zu verwenden, um die Perioden aus den Spaltennamen zu entfernen:

> names(mydf) 
[1] "JulDay"  "i.46.j.8.k.1" "i.47.j.8.k.1" "i.48.j.8.k.1" "i.46.j.8.k.2" 
[6] "i.47.j.8.k.2" "i.48.j.8.k.2" "i.46.j.8.k.3" "i.47.j.8.k.3" "i.48.j.8.k.3" 
[11] "i.46.j.8.k.4" "i.47.j.8.k.4" "i.48.j.8.k.4" 
> names(mydf) <- gsub("\\.", "", names(mydf)) 
> names(mydf) 
[1] "JulDay" "i46j8k1" "i47j8k1" "i48j8k1" "i46j8k2" "i47j8k2" "i48j8k2" "i46j8k3" 
[9] "i47j8k3" "i48j8k3" "i46j8k4" "i47j8k4" "i48j8k4" 
+0

Ich spielte mit gsub, aber konnte es nicht herausfinden. Vielen Dank Ananda. –

2

Bibliothek (Pförtner)

mydf%>% clean_names()

Die clean_names Funktion Im Hausmeister werden alle Zeichen entfernt, die keine Kleinbuchstaben, Unterstriche oder Zahlen sind. Es kann die Perioden in Unterstriche umwandeln, wenn Sie also dieses Zeichen vollständig loswerden wollen, wird die gsub-Lösung am besten funktionieren.

Verwandte Themen