2017-07-21 8 views
-1

Wie kann ich die Werte der Spalten kombinieren? Wie folgt aus:Werte aus einer anderen Spalte einfügen

enter image description here

Erwartete Ausgabe:

enter image description here

+1

Werfen Sie einen Blick auf 'rbind' – Christoph

+1

Bitte schreiben Sie keine Daten so. Verwenden Sie "? Dput" oder einen Nur-Text-Copy-Paste-Befehl, damit wir die Daten in eine 'R'-Sitzung bringen können. –

Antwort

2

Eine andere Option, die rbind verwendet.

d <- seq(1, 27) 
m <- matrix(d, nrow=3, byrow=TRUE) 

Dann m würde wie folgt aussehen (Ihre Eingangsdaten nachahmt):

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] 
[1,] 1 2 3 4 5 6 7 8 9 
[2,] 10 11 12 13 14 15 16 17 18 
[3,] 19 20 21 22 23 24 25 26 27 

Dann können Sie rbind auf Brocken Ihre Eingabe nennen; für größere Matrizen sollten Sie dies in einem for-loop tun:

mnew = data.frame(rbind(m[, 1:3], m[ ,4:6], m[,7:9])) 
names(mnew) <- c('V1', 'V2', 'V3') 

, dass die gewünschte Ausgabe liefert:

V1 V2 V3 
1 1 2 3 
2 10 11 12 
3 19 20 21 
4 4 5 6 
5 13 14 15 
6 22 23 24 
7 7 8 9 
8 16 17 18 
9 25 26 27 
+1

Danke, Cleb! –

2

zuerst müssen Sie sagen, welche Spalten Sie kombinieren möchten, aber Sie können es tun, wie folgt man bedenkt, dass dat ist der Name Ihrer Datenrahmen

dt <- data.frame(c(dat$V1,dat$V4,dat$V7),c(dat$V2,dat$V5,dat$V8),c(dat$V3,dat$V6,dat$V9)) 

dann Spalten umbenennen mit names(dt) <- c("V1","V2","V3")

+0

Wenn Sie 'rbind' verwenden wollen, müssen Sie Ihren Datenrahmen in 3 Datenrahmen schneiden, Spalten umbenennen und' rbind' verwenden –

+0

Danke Orhan !!! –

1

Lassen Sie uns sagen, dass Ihre grundlegenden Datenrahmen heißt df1 Mit rbind, wie Orhan bereits gesagt, hatten Sie Ihre Datenrahmen und benennen Sie die Spalten aufgeteilt:

a <- df1[1:3] 
names(a) <- c("V1","V2", "V3") 
b <- df1[4:6] 
names(b) <- c("V1","V2", "V3") 
c <- df1[7:9] 
names(c) <- c("V1","V2", "V3") 
df2<- rbind(a,b,c) 
+1

Ähnlich wie bei mir, aber auch unter verschiedenen Namen, +1 – Cleb

0

Diese leicht durch Veränderung df Matrix durchgeführt werden könnten, um eine und dann 0 mit

df <- as.matrix(df) 
df <- rbind(df[,1:3],df[,4:6],df[,7:9]) 

Dann haben Sie die Möglichkeit, es wieder zu data.frame mit as.data.frame Umwandlung()

Verwandte Themen