R의 목록 내에서 행렬 목록 빼기

파괴자

나는 다음과 같이 행렬로 list구성되어 list있습니다.

$A
$A[[1]]
$A[[1]][[1]]
     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10


$A[[2]]
$A[[2]][[1]]
     [,1] [,2]
[1,]    2    7
[2,]    3    8
[3,]    4    9
[4,]    5   10
[5,]    6   11



$B
$B[[1]]
$B[[1]][[1]]
     [,1] [,2]
[1,]   11   16
[2,]   12   17
[3,]   13   18
[4,]   14   19
[5,]   15   20


$B[[2]]
$B[[2]][[1]]
     [,1] [,2]
[1,]   12   17
[2,]   13   18
[3,]   14   19
[4,]   15   20
[5,]   16   21



$C
$C[[1]]
$C[[1]][[1]]
     [,1] [,2]
[1,]    0    0
[2,]    0    0
[3,]    0    0
[4,]    0    0
[5,]    0    0


$C[[2]]
$C[[2]][[1]]
     [,1] [,2]
[1,]    0    0
[2,]    0    0
[3,]    0    0
[4,]    0    0
[5,]    0    0

위의 행렬 목록은 아래 코드를 사용하여 생성되었습니다.

A_mat1 <- matrix(as.numeric(c(1:10)), nrow = 5, ncol = 2)
B_mat1 <- matrix(as.numeric(c(11:20)), nrow = 5, ncol = 2)
C_mat1 <- matrix(as.numeric(0), nrow = 5, ncol = 2)
A_mat2 <- matrix(as.numeric(c(2:11)), nrow = 5, ncol = 2)
B_mat2 <- matrix(as.numeric(c(12:21)), nrow = 5, ncol = 2)
C_mat2 <- matrix(as.numeric(0), nrow = 5, ncol = 2)

my_matrix_name <- as.vector(c("A_mat1", "B_mat1", "C_mat1", "A_mat2", "B_mat2", "C_mat2"))
my_list = list(A_mat1, B_mat1, C_mat1, A_mat2, B_mat2, C_mat2)
names(my_list) <- my_matrix_name

my_A <- as.vector(my_matrix_name[substring(my_matrix_name,1,1) == "A"])
my_B <- as.vector(my_matrix_name[substring(my_matrix_name,1,1) == "B"])
my_C <- as.vector(my_matrix_name[substring(my_matrix_name,1,1) == "C"])

A = list()
for(i in seq_len(length(my_A))){
  A[[i]] <- list(my_list[[paste0(my_A[[i]])]])
}

B = list()
for(i in seq_len(length(my_B))){
  B[[i]] <- list(my_list[[paste0(my_B[[i]])]])
}

C = list()
for(i in seq_len(length(my_C))){
  C[[i]] <- list(my_list[[paste0(my_C[[i]])]])
}

my_group = list(A,B,C)
names(my_group) <- c("A", "B", "C")
my_group

여기서 그룹 C행렬의 값은 0입니다. 이제 그룹 C이 그룹 A마이너스 그룹과 같음 B즉 C = A-B 를 덮어 쓰는 수식을 만들고 싶습니다.

나는 사용해 보았다

my_group[[3]] = my_group[[1]] - my_group[[2]]

my_group[[3]] = Map("-", my_group[[1]] , my_group[[2]])

그러나 그것은 오류 메시지를 제공합니다 : 이항 연산자에 숫자가 아닌 인수. 누구든지 제발 도와 줄 수 있습니까? 감사!

앨런 카메론

중첩 된 목록 Map이 있으므로 함수는 실제로 다른 목록에서 목록을 빼려고합니다. 각 목록의 첫 번째 요소를 추출하고 빼려면 매핑 함수가 필요합니다.

Map(function(A, B) A[[1]] - B[[1]], my_group$A , my_group$B)
#> [[1]]
#>      [,1] [,2]
#> [1,]  -10  -10
#> [2,]  -10  -10
#> [3,]  -10  -10
#> [4,]  -10  -10
#> [5,]  -10  -10
#> 
#> [[2]]
#>      [,1] [,2]
#> [1,]  -10  -10
#> [2,]  -10  -10
#> [3,]  -10  -10
#> [4,]  -10  -10
#> [5,]  -10  -10

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

R에서 행렬 목록 만들기

분류에서Dev

목록 목록에서 목록 빼기

분류에서Dev

행렬의 배열 목록에 넣기

분류에서Dev

목록 목록에서 두 값 빼기

분류에서Dev

Matlab의 인덱스 목록에서 행렬 값 목록 가져 오기

분류에서Dev

R에서 거리 행렬 목록 만들기

분류에서Dev

R : 빈 목록에서 n 개 행렬로 m 초기화

분류에서Dev

Tensorflow에서 행렬 목록 만들기

분류에서Dev

R에서 행렬 목록 조작

분류에서Dev

목록에서 행렬의 문자열 요소 찾기

분류에서Dev

MS Excel의 목록에서 행렬 만들기

분류에서Dev

Python의 행렬에서 인접 목록 그래프 만들기

분류에서Dev

Python의 목록에서 행렬 만들기

분류에서Dev

행렬 R 내의 목록 내 항목 수 계산

분류에서Dev

R 목록 또는 행렬 만들기

분류에서Dev

R : jsonlite-목록 목록에서 키 : 값 쌍 내보내기

분류에서Dev

목록 내에서 빼기를 수행하는 방법은 무엇입니까?

분류에서Dev

희소 행렬에 대한 R 목록

분류에서Dev

목록의 각 행렬에 SVD 사용

분류에서Dev

csv 행에 목록 목록 쓰기

분류에서Dev

목록 목록의 각 목록에서 ''.join 코드 실행

분류에서Dev

R의 목록에서 각 행렬의 정보 검색

분류에서Dev

Python에서 목록 내 목록 정렬

분류에서Dev

목록 목록에서 각 목록의 최소 색인 찾기

분류에서Dev

프롤로그의 목록 목록에서 목록 찾기

분류에서Dev

R의 목록 목록에서 계층 다시 정렬

분류에서Dev

목록 중 하나의 정렬 된 순서를 잃지 않고 두 목록에서 사전 목록 만들기

분류에서Dev

R에서 행렬 목록의 요소 별 중앙값

분류에서Dev

트리 목록에서 R의 행렬로

Related 관련 기사

뜨겁다태그

보관