### Description

The direction of the constructs in a grid is arbitrary and a reflection of a scale does not affect the information contained in the grid. Nonetheless, the direction of a scale has an effect on inter-element correlations (Mackay, 1992) and on the spatial representation and clustering of the grid (Bell, 2010). Hence, it is desirable to follow a protocol to align constructs that will render unique results. A common approach is to align constructs by pole preference, i.e. aligning all positive and negative poles. This can e. g. be achieved using the function swapPoles. If an ideal element is present the function alignByIdeal will align the constructs accordingly. Note that this approach does not always yield definite results as sometimes ratings do not show a clear preference for one pole (Winter, Bell, & Watson, 2010). If a preference cannot be determined definitely, the construct direction remains unchanged (a warning is issued in that case).

Bell (2010) proposed another solution for the problem of construct alignment. As a unique protocol he suggests to align constructs in a way so they all have positive loadings on the first component of a grid PCA.

### R-Code

#### Align by ideal/preference

To align a construct by preference, an ideal element has to be defined. For the following example it is element 13 (ideal self).

alignByIdeal(feixas2004, 13) 
Warning in alignByIdeal(feixas2004, 13): The following constructs do not show a preference for either poleand have thus
not been aligned: 2

RATINGS:
7 - Friend 2
Friend 1 - 6 | 8 - Non-grata
Boyfriend - 5 | | | 9 - Friend 3
Brother - 4 | | | | | 10 - Cousin
Father - 3 | | | | | | | 11 - Godmother
Mother - 2 | | | | | | | | | 12 - Friend 4
Self now - 1 | | | | | | | | | | | 13 - Ideal Self
| | | | | | | | | | | | |
Pessimistic (1)   1 1 5 2 7 3 6 2 6 4 3 2 7   (1) Optimistic
Self-demanding (2)   1 6 6 2 2 5 6 3 5 6 4 5 4   (2) Takes it easy
Fearful (3)   2 2 6 2 4 5 6 5 2 3 4 5 5   (3) Enterprising
Lives to work (4)   5 1 2 2 6 6 6 1 6 7 6 6 7   (4) Works to live
his/her wishes (5)   6 2 1 1 4 3 6 1 7 3 4 2 7   (5) Tolerant with
Touchy (6)   6 1 7 2 4 5 4 2 5 5 3 2 5   (6) Teasing
reciate others (7)   6 2 2 2 7 3 4 1 4 6 6 3 7   (7) Appreciates o
Aggressive (8)   6 4 2 2 7 4 6 2 6 6 6 3 7   (8) Calm
Selfish (9)   6 6 2 1 6 5 3 1 5 5 6 6 6   (9) Concerned abo
Avaricious (10)   6 1 1 1 7 5 5 1 6 3 3 6 7   (10) Generous
, superficial (11)   7 3 1 1 7 4 3 1 7 4 5 4 7   (11) Sensitive
Cheeky (12)   6 6 5 4 6 6 6 1 6 5 6 5 7   (12) Respectful
Hypocritical (13)   5 4 4 2 6 5 5 1 6 6 5 4 7   (13) Sincere
Blackmailer (14)   3 2 2 1 5 6 6 1 6 6 6 3 7   (14) Non blackmai
onger than is (15)   6 3 1 2 5 2 4 2 7 6 6 5 6   (15) Natural
er the friend (16)   6 3 3 3 6 2 1 2 4 4 6 4 7   (16) Looks after
on Accessible (17)   5 2 2 1 4 2 4 1 6 3 5 2 7   (17) Accessible
Introverted (18)   1 2 6 2 4 5 7 5 2 6 6 5 5   (18) Extroverted
ressed easily (19)   1 2 6 3 6 3 7 6 1 3 3 3 6   (19) Does not get
the negative (20)   2 2 4 2 7 3 6 1 2 5 5 3 7   (20) Tries to fin

Note that when midpoint ratings are present no preferred pole can be identified, as it is the case for one construct in the example above.

As a default the preferred poles are assigned to the right side. You can use the argument high=FALSE to indicate that high ratings will correspond to the negative pole. Hence, the preferred pole will be in the left side of the grid.

alignByIdeal(feixas2004, 13, high=F) 
Warning in alignByIdeal(feixas2004, 13, high = F): The following constructs do not show a preference for either poleand
have thus not been aligned: 2

RATINGS:
7 - Friend 2
Friend 1 - 6 | 8 - Non-grata
Boyfriend - 5 | | | 9 - Friend 3
Brother - 4 | | | | | 10 - Cousin
Father - 3 | | | | | | | 11 - Godmother
Mother - 2 | | | | | | | | | 12 - Friend 4
Self now - 1 | | | | | | | | | | | 13 - Ideal Self
| | | | | | | | | | | | |
Optimistic (1)   7 7 3 6 1 5 2 6 2 4 5 6 1   (1) Pessimistic
Self-demanding (2)   1 6 6 2 2 5 6 3 5 6 4 5 4   (2) Takes it easy
Enterprising (3)   6 6 2 6 4 3 2 3 6 5 4 3 3   (3) Fearful
Works to live (4)   3 7 6 6 2 2 2 7 2 1 2 2 1   (4) Lives to work
nt with others (5)   2 6 7 7 4 5 2 7 1 5 4 6 1   (5) Imposes his/h
Teasing (6)   2 7 1 6 4 3 4 6 3 3 5 6 3   (6) Touchy
eciates others (7)   2 6 6 6 1 5 4 7 4 2 2 5 1   (7) Does not appr
Calm (8)   2 4 6 6 1 4 2 6 2 2 2 5 1   (8) Aggressive
d about others (9)   2 2 6 7 2 3 5 7 3 3 2 2 2   (9) Selfish
Generous (10)   2 7 7 7 1 3 3 7 2 5 5 2 1   (10) Avaricious
Sensitive (11)   1 5 7 7 1 4 5 7 1 4 3 4 1   (11) Materialisti
Respectful (12)   2 2 3 4 2 2 2 7 2 3 2 3 1   (12) Cheeky
Sincere (13)   3 4 4 6 2 3 3 7 2 2 3 4 1   (13) Hypocritical
n blackmailer (14)   5 6 6 7 3 2 2 7 2 2 2 5 1   (14) Blackmailer
Natural (15)   2 5 7 6 3 6 4 6 1 2 2 3 2   (15) Appears stro
he friendship (16)   2 5 5 5 2 6 7 6 4 4 2 4 1   (16) Does not loo
Accessible (17)   3 6 6 7 4 6 4 7 2 5 3 6 1   (17) Non Accessib
Extroverted (18)   7 6 2 6 4 3 1 3 6 2 2 3 3   (18) Introverted
ressed easily (19)   7 6 2 5 2 5 1 2 7 5 5 5 2   (19) Gets depress
good in thin (20)   6 6 4 6 1 5 2 7 6 3 3 5 1   (20) Sees only th

To save the assigned grid into a new object:

x <- alignByIdeal(feixas2004, 13) 
Warning in alignByIdeal(feixas2004, 13): The following constructs do not show a preference for either poleand have thus
not been aligned: 2

The alignment operation using OpenRepgrid is performed by the function alignByLoadings.

alignByLoadings(bell2010)

###################################
###################################

Construct correlations - before alignment

1     2     3     4     5     6     7     8     9
(1) relaxed - worried &     1     -0.10  0.03 -0.83  0.12  0.23 -0.49  0.66 -0.08
(2) not so sma - smart (aca 2           -0.47 -0.01 -0.80 -0.35  0.28 -0.19  0.12
(3) dislikes s - loves spor 3                 -0.04  0.36  0.04 -0.01 -0.24  0.08
(4) not intera - loves peop 4                        0.17  0.21  0.34 -0.49  0.25
(5) not transp - transparen 5                              0.38 -0.05  0.01  0.29
(6) insensitiv - sensitive  6                                   -0.71  0.55 -0.26
(7) fearful&ti - fearless   7                                         -0.78  0.65
(8) rough - gentle          8                                               -0.54
(9) accept as  - loves to a 9

Construct factor loadiongs on PC1 - before alignment

PC1
(1) relaxed - worried &      0.726
(2) not so sma - smart (aca -0.392
(3) dislikes s - loves spor  0.029
(4) not intera - loves peop -0.553
(5) not transp - transparen  0.183
(6) insensitiv - sensitive   0.643
(7) fearful&ti - fearless   -0.912
(8) rough - gentle           0.907
(9) accept as  - loves to a -0.591

The following constructs are reversed:

index
(2) not so sma - smart (aca     2
(4) not intera - loves peop     4
(7) fearful&ti - fearless       7
(9) accept as  - loves to a     9

Construct correlations - after alignment

1     2     3     4     5     6     7     8     9
(1) relaxed - worried &     1      0.10  0.03  0.83  0.12  0.23  0.49  0.66  0.08
(2) smart (aca - not so sma 2            0.47 -0.01  0.80  0.35  0.28  0.19  0.12
(3) dislikes s - loves spor 3                  0.04  0.36  0.04  0.01 -0.24 -0.08
(4) loves peop - not intera 4                       -0.17 -0.21  0.34  0.49  0.25
(5) not transp - transparen 5                              0.38  0.05  0.01 -0.29
(6) insensitiv - sensitive  6                                    0.71  0.55  0.26
(7) fearless - fearful&ti   7                                          0.78  0.65
(8) rough - gentle          8                                                0.54
(9) loves to a - accept as  9

PC1
(1) relaxed - worried &     0.726
(2) smart (aca - not so sma 0.392
(3) dislikes s - loves spor 0.029
(4) loves peop - not intera 0.553
(5) not transp - transparen 0.183
(6) insensitiv - sensitive  0.643
(7) fearless - fearful&ti   0.912
(8) rough - gentle          0.907
(9) loves to a - accept as  0.591

To save the alignment information in an object:

x <- alignByLoadings(bell2010)

To get more information about the function type: ?alignByLoadings to the console to open the help menu for the function. As a default the function will return a list containing:

Name of list element Content
cor.before Construct correlation matrix before reversal
loadings.before Loadings on PCs before reversal
reversed Constructs that have been reversed
cor.after Construct correlation matrix after reversal
loadings.after Loadings on PCs after reversal
names(x)
[1] "cor.before"      "loadings.before" "reversed"        "cor.after"       "loadings.after" 

To extract the indices that need reversal and use them to swap the poles you may do:

swapPoles(bell2010, x$reversed$index)

RATINGS:
A teacher you respected - 5 6 - Mother (or the person who
on of the opposite sex t - 4 | | 7 - A person of the opposit
ppiest person you know - 3 | | | | 8 - The most confident pe
iend of the same sex - 2 | | | | | | 9 - A person you work w
self - 1 | | | | | | | | 10 - A teacher you di
| | | | | | | | | |
relaxed (1)   4 4 6 5 3 6 5 2 2 6   (1) worried & ten
(academically) (2)   2 1 2 3 1 4 2 1 4 1   (2) not so smart
islikes sports (3)   6 3 7 6 4 4 2 3 6 3   (3) loves sports
loves people (4)   2 1 3 2 2 3 2 1 1 4   (4) not interacti
ot transparent (5)   6 4 5 7 3 7 6 5 6 3   (5) transparent
insensitive (6)   4 6 5 4 4 6 5 3 4 2   (6) sensitive
fearless (7)   3 4 4 2 3 5 3 2 3 3   (7) fearful&timid
rough (8)   5 6 6 4 5 7 7 3 5 6   (8) gentle
loves to argue (9)   3 3 2 1 4 4 2 1 3 3   (9) accept as it 

This is clumsy though and will be subject to change in later versions of OpenRepGrid.

### Literature

Bell, R. C. (2010). A note on aligning constructs. Personal Construct Theory & Practice, 7, 42–48.

Mackay, N. (1992). Identification, reflection, and correlation: Problems in the bases of repertory grid measures. International Journal of Personal Construct Psychology, 5(1), 57–75. doi:10.1080/08936039208404941

Winter, D. A., Bell, R. C., & Watson, S. (2010). Midpoint ratings on personal constructs: Constriction or the middle way? Journal of Constructivist Psychology, 23(4), 337–356. doi:10.1080/10720537.2010.502428