Home > OS >  How to assign the returned two values in a function
How to assign the returned two values in a function

Time:02-19

i have a function which return two values.

definePosition <- function(nodeList){
#  nodeList = node_names
  # unique name endings
  endings = unique(sub('.*_', '', nodeList))
  # define intervals
  steps = 1/length(endings)
  # x-values for each unique name ending
  # for input as node position
  nodes_x = {}
  xVal = 0
  for (e in endings) {
    nodes_x[e] = xVal
    xVal = xVal   steps

  }
  # x and y values in list form
  x_values <- 0
  y_values <- 0
  i =0
  for (n in nodeList) {
   last = sub('.*_', '', n)
    x_values[i] = nodes_x[last]
    y_values[i] = 0.1 * length(x_values)
    i = i   1
 }
  
  return(list(x_values, y_values))
  
}

position = definePosition(node_names)

Now i want to assign x_values to node_x, and y_values to node_y by below code, but doesn't work. what should be the correct assign?

node_x = position[0]
node_y = position[1]

CodePudding user response:

Since you are returning a list, you need to perform list extraction. Furthermore, indexing in R is 1-based:

node_x = position[[1L]]
node_y = position[[2L]]
  •  Tags:  
  • r
  • Related