2017-02-04 2 views
0

나는 각각 12 개의 변수가있는 170 개의 항목 목록을 가지고 있습니다. 이 데이터는 현재 하나의 연속 행 (2,040 변수의 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

로 변환 그 자체로 scan와 숫자 요소의 vector, splitvector로 문자열을 변환

,691에서

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 ...