2017-02-04 3 views
0

私は、それぞれ12個の変数を持つ170個の項目のリストを持っています。このデータは、現在、一つの連続した行(2040個の変数の1つの観測)で編成され、例えば:1行を行と列に変換する

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 

が、次のように私はそれが12行と170列に編成することにしたい。

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を

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

ただし、これはデータを改変しません。データを変換するために他に何かできますか?

+0

数値要素の文字列かベクトルですか? – akrun

+1

数値だけであれば、 'matrix(as.vector(list1)、ncol = 170)'のようにすることができます – Haboryme

+0

数値要素の文字列です –

答えて

2

私たちのように(listを作成し、データが既にベクトルに変換されている場合はdata.frame

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

に変換するためにそれ自体でvectorsplitscanと数値要素のvectorに文字列を変換します

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

結果:@akrunはあなたにも行うことができます)scanを使用して示しました。

> 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 ... 
関連する問題