R:返回并访问向量中的矩阵

时间:2018-03-23 15:08:56

标签: r matrix vector return

因此在我的一个名为place的函数中,我返回了一个矩阵board和一个向量av_targets

place <- function(ship, orientation, location, board, av_targets){
  if (orientation[1] ==-1){
    for (i in 0:(as.integer(ships_dim[ship])-1)){
      board[location[1],location[2]+(i*as.integer(orientation[2]))]<- keys[ship]
      av_targets <- av_targets[av_targets != paste0(location[1],location[2])]
    }
  }
  if (orientation[1] ==1){
    for (i in 0:(as.integer(ships_dim[ship])-1)){
      board[location[1]+(i*as.integer(orientation[2])),location[2]]<- keys[ship]
      av_targets <- av_targets[av_targets != paste0(location[1],location[2])]
    }
  }
  return(c(board,av_targets))
}

我然后在作业中调用地点,v <- place("destroyer",c(1,1),c(4,4), computer_board,computer_av_targets)

但是现在我在访问返回的av_targets时遇到了麻烦。如果我做v [2],它返回矩阵的第二个索引,这是一个10x10矩阵。所以我不确定如何从函数中返回的内容中检索av_targets

编辑:我还需要能够从return语句中检索整个矩阵。那么我怎么能访问它。我习惯了python,我只需要调用v [1]并获取矩阵,v [2]将得到av_targets。

1 个答案:

答案 0 :(得分:1)

您正在尝试返回具有两种不同数据类型的向量,但向量仅存储一个确定类的原子数据类型。 在R中,只有列表和数据框具有存储具有多个类类型的数据的功能。 所以代替:

返回(C(板,av_targets))

创建一个列表并将其返回:

k&lt; - list(board,av_targets)

返回k