이것에 문제가
있습니다. 행렬 목록을 만들어야합니다. 다음은 데이터 프레임입니다.
data=data.frame("Node"=c(1:5), posx=c(2,3,6,8,1), posy=c(1,1,4,7,8))
Node posx posy
1 1 2 1
2 2 3 1
3 3 6 4
4 4 8 7
5 5 1 8
이제 행렬 목록을 만들고 싶습니다. 루프 포함. 다음과 같은 행렬 목록을 만들고 싶습니다.
l=list(l1,l2,l3,l4,l5)
어디:
l1=cbind(c(2),c(1))
l2=cbind(c(3),c(1))
l3=cbind(c(6),c(4))
l4=cbind(c(8),c(7))
l5=cbind(c(1),c(8))
그리고 여기 내 시도가 있습니다.
for (i in 1:(data$Node) ) {
l=list(cbind(c(data$posx[i]), (data$posy[i])))
}
시험
lapply(seq_len(nrow(data)), function(i) as.matrix(data[i,-1]))
또는
lapply(split(data[,-1],row(data)[,1]), as.matrix)
또는
lapply(split(as.matrix(data[,-1]),row(data)[,1]), matrix, ncol=2)
또는 사용 data.table
library(data.table)
setDT(data)[,list(list(as.matrix(.SD))) , by=Node]$V1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다