2017-01-19 6 views
0

Ich möchte Iris Daten in R von 5 Spalten zu 4 Spalten umformen. Die endgültige Ausgabe sollte Spalten:Umformung data.frame in R (sammeln, spreizen)

  1. Species
  2. Teil
  3. Länge
  4. Breite

Die 'Teil' Spalte sollte 'Petal' und 'Sepal'

umfassen

Der Code, den ich wie folgt ausprobiert habe, ergab einen Fehler "Fehler: Doppelte Bezeichner für Zeilen"

iris_new <- iris[c(5, 1:4)] %>% 
gather(part_measure, value, -Species) %>% 
separate(part_measure, c("part", "measure"), "[.]") %>% 
spread(measure, value) 

Bitte korrigieren Sie mich, danke im Voraus.

Antwort

2

Sie benötigen nur eine ID-Variable, um jede Zeile eindeutig zu identifizieren.

iris_new <- iris[c(5, 1:4)] %>% 
    mutate(id = 1:nrow(iris)) %>% 
    gather(part_measure, value, -Species, -id) %>% 
    separate(part_measure, c("part", "measure"), "[.]") %>% 
    spread(measure, value) %>% View()