2017-02-04 5 views
0

Ich habe eine Liste von 170 Elementen mit jeweils 12 Variablen. Diese Daten werden zur Zeit in einer fortlaufenden Reihe (1 Beobachtungen von 2040 Variablen) organisiert, zB:Einzelne Zeile in Zeilen und Spalten umwandeln

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 

aber ich will es mit 12 Zeilen in 170 Spalten organisiert werden, wie folgt:

0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 
0 1 2 

I habe folgendes versucht:

list2=lapply(list1, function(x) t(x)) 

aber dies ändert die Daten in keiner Weise. Kann ich noch etwas anderes tun, um die Daten zu transformieren?

+0

Ist es ein String oder ein Vektor von numerischen Elementen? – akrun

+1

Wenn es nur numerische Werte sind, könnten Sie etwas wie "matrix (as.vector (list1), ncol = 170) machen" – Haboryme

+0

Es ist eine Folge von numerischen Elementen –

Antwort

2

Wir konvertieren den String in eine vector numerischer Elemente mit scan, split die vector selbst eine list zu erstellen und an einem data.frame

v2 <- scan(text=v1, what=numeric(), quiet=TRUE) 
data.frame(split(v2, v2)) 
1

konvertieren Wenn Ihre Daten bereits in einen Vektor umgewandelt wird (wie @akrun zeigte bei der Verwendung von scan), könnten Sie auch tun:

data <- 1:2040 # your data 
breaks <- seq(1, 2040, 170) 
result <- lapply(breaks, function(x) data[x : (x + 169)]) 

Ergebnisse in

> str(result) 
List of 12 
$ : int [1:170] 1 2 3 4 5 6 7 8 9 10 ... 
$ : int [1:170] 171 172 173 174 175 176 177 178 179 180 ... 
$ : int [1:170] 341 342 343 344 345 346 347 348 349 350 ... 
$ : int [1:170] 511 512 513 514 515 516 517 518 519 520 ... 
$ : int [1:170] 681 682 683 684 685 686 687 688 689 690 ... 
$ : int [1:170] 851 852 853 854 855 856 857 858 859 860 ... 
$ : int [1:170] 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 ... 
$ : int [1:170] 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 ... 
$ : int [1:170] 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 ... 
$ : int [1:170] 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 ... 
$ : int [1:170] 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 ... 
$ : int [1:170] 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 ... 
Verwandte Themen