我有170个项目的列表,每个项目有12个变量。该数据目前以连续的一行(2040个变量的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
但我想将它组织成170列,每行12行:
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
我尝试了以下内容:
list2=lapply(list1, function(x) t(x))
但这并没有以任何方式改变数据。我还能做些什么来改造数据吗?
答案 0 :(得分:2)
我们将字符串转换为vector
数字元素scan
,split
vector
自身list
以创建data.frame
并将其转换为v2 <- scan(text=v1, what=numeric(), quiet=TRUE)
data.frame(split(v2, v2))
@echo off
for /f %%f in ('dir bucle.bat /s/b') do @echo %f %~tf
pause
exit
答案 1 :(得分:1)
如果您的数据已经转换为矢量(正如@akrun使用scan
显示的那样),您也可以这样做:
data <- 1:2040 # your data
breaks <- seq(1, 2040, 170)
result <- lapply(breaks, function(x) data[x : (x + 169)])
结果
> 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 ...