因此在我的一个名为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。
答案 0 :(得分:1)
您正在尝试返回具有两种不同数据类型的向量,但向量仅存储一个确定类的原子数据类型。 在R中,只有列表和数据框具有存储具有多个类类型的数据的功能。 所以代替:
返回(C(板,av_targets))
创建一个列表并将其返回:
k&lt; - list(board,av_targets)
返回k