Means Rotation in rENA

Cody L Marquart

2019-12-17

#library(rENA)

Setting up

For this example, we will use the same accumulation as described in vignette('getting-started',package="rENA"), so review that document if anything in the following section is not clear.

Create a Means Rotated Set

Creating and plotting a means rotated set is fairly similar to a standard set, however we will define the rotation function along with the groups of rotated points that will be rotated along their means. The rENA package comes with a function for means rotation, ena.rotate.by.mean, which is set as the rotation.by parameter of ena.make.set. Along with the function, rotation.params is set as the parameters we want to pass along to the rotation function. In the case of ena.rotate.by.mean, it expects rotation.params to be a list with two named elements, each containing a logical vector representing the rows of units to be included in particular group.

## Save references to the two vectors for easier re-use
first.game = accum$meta.data$Condition == "FirstGame"
second.game = accum$meta.data$Condition == "SecondGame"

rotation.params = list(
  FirstGame = first.game, 
  SecondGame = second.game
)

setMeansRotated = ena.make.set(
  enadata = accum,                   # The previously run accumulation above
  rotation.by = ena.rotate.by.mean,  # Function provided by rENA
  rotation.params = rotation.params  # The defined paremeters for rotation
)

first.points =  as.matrix(setMeansRotated$points$Condition$FirstGame)
second.points = as.matrix(setMeansRotated$points$Condition$SecondGame)
plot.rotated = ena.plot(setMeansRotated,  title = "Mean Rotation", scale.to = "p") %>%
                  ena.plot.points(points = first.points,  colors = c("red")) %>% 
                  ena.plot.points(points = second.points, colors = c("blue")) %>%
                  ena.plot.group(point = first.points, colors =c("red"), 
                                 confidence.interval = "box") %>%
                  ena.plot.group(point = second.points, colors =c("blue"), 
                                 confidence.interval = "box")

plot.rotated$plot