RR {TripleR}R Documentation

Triple R: Round-Robin Analyses Using R


The function RR performs Social Relation Model (SRM) analyses for single or multiple round-robin groups.


RR(formula, data, na.rm=FALSE, minData=1, verbose=TRUE, g.id=NULL, index="", 
	exclude.ids="", varname=NA, minVar=localOptions$minVar, ...)



a formula (see details) consisting of a measure (e.g. a rating) obtained with a round-robin group


A data frame in long format


If missing values are present, you have to set this parameter to TRUE


Sets the minimum of data points which have to be present in each row and column


Defines if warnings and additional information should be printed on execution


For internal use only; do not set this parameter


set index = 'enhance' for additionally requesting an index for self enhancement (self rating - perceiver effect - target effect - group mean of self ratings; Kwan, John, Kenny, Bond, & Robins, 2004) along with the actor and partner effects.


For internal use only; do not set this parameter


The name stem of the effects variables. By default, this is the first variable passed in the formula. In case of latent constructs, however, it might be preferable to set a new name for the latent construct.


Actor and partners effects are only calculated if the respective relative variance component is greater than minVar. Set minVar to NA if this cleaning should not be performed. For small groups, Kenny (1994) suggests a minimum relative variance of 10% for the interpretation of SRM effects. In any case, actor/ partner effects and correlations with these variables should not be interpreted if these components have negative variance estimates. minVar defaults to zero; with RR.style this default can be changed for all subsequent analyses.


Further undocumented or internal arguments passed to the function


Please note: detailed instructions on how to use the TripleR package are provided in the built in pdf document ‘How to use TripleR’. You can open this document either by on this link: ../doc/TripleR.pdf, or you can browse all included vignettes by opening the index of the package documentation (scroll down to the very end of this page and click on ‘Index’; than click on ‘Overview of user guides and package vignettes’). These help files are only for quick references.

The estimation of the parameters of the Social Relation Model (SRM) is based on formulae provided by Kenny (1994; p. 236-244). For tests of significance of a single group, Triple R computes standard errors by using formulae published by Bond and Lashley (1996) for the case of a univariate SRM analysis. The formulae for the standard errors of the bivariate SRM parameters were kindly provided to us by C.F. Bond in personal communication. If multiple groups are provided, by default a between-group t-test is employed to calculate the significance. If you have very few groups with a considerable size (n>15), even in the multiple group scenario it might be preferable to use the within-group test of significance. You can inspect the within-group test of significance for each of the multiple groups in the return value (see groups.univariate).

The formula to specify the round robin design has following notation: DV ~ perceiver.id * target.id | group.id (group.id is only provided if multiple groups are present). If two variables are used to describe one latent construct, both are connected with a slash on the left hand side: DV1a/DV1b ~ perceiver.id * target.id. If two variables are used to describe two manifest constructs, both are connected with a + on the left hand side: DV1+DV2 ~ perceiver.id * target.id. A latent analysis of two constructs would be notated as following: DV1a/DV1b + DV2a/DV2b ~ perceiver.id * target.id.

Data sets from the Mainz Freshman Study (see Back, Schmukle, & Egloff, in press) are included (liking_a, liking_b, metaliking_a, metaliking_b, likingLong), as well as an additional data set containing missing values (multiGroup)

The handling for missing data (na.rm=TRUE) is performed in three steps:


Printed are both unstandardized and standardized SRM estimates with the corresponding standard errors and t-values for actor variance, partner variance, relationship variance, error variance, actor-partner covariance, and relationship covariance. In case of a bivariate analysis values are additionally provided for actor-actor covariance, partner-partner covariance, actor-partner covariance, partner-actor covariance, intrapersonal relationship covariance, and interpersonal relationship covariance.

Reliabilities of actor, partner, and relationship effects (the latter only in the case of latent analyses) are printed according to Bonito & Kenny (2010).

The returned values depend on the kind of analyses that is performed:

Univariate, single group:


actor and partner effects for all participants; if self ratings are provided they also are returned as group mean centered values


actor and partner effects for all participants, group mean added


relationship effects for all participants


variance components

Bivariate, single group:


List of results of univariate of SRM analyses of both variables- specify variable in index: univariate[[1]] or univariate[[2]]. That means, each of the both univariate objects is a complete RR object for the univariate analyses, nested in the results objects. If you want to retrieve the effects for the first variable, you have to type RR2$univariate[[1]]$effects. If you want to retrieve the variance components, you have to type RR2$univariate[[1]]$varComp


Results of bivariate SRM analyses

In the multiple group case, following values are returned:


The weighted average of univariate SRM results


The weighted average of bivariate SRM results


SRM results for each group


actor and partner effects for all participants


relationship effects for all participants


a list of variance components in all single groups


group variance estimate

If self ratings are present in the data set, the function also prints the correlation between self ratings and actor/partner effects. In case of multiple groups, these are corrected for group membership (partial correlations). These correlations with self-ratings can also directly be computed with the function selfCor. Partial correlations to external (non-SRM) variables can be computed with the function parCor


In case that a behavior was measured, the variances of an SRM analysis are labeled as actor variance, partner variance and relationship variance (default output labels). In case that a perception was measured, perceiver is printed instead of actor and target is printed instead of partner. You can set appropriate output labels by using the function RR.style. These settings from RR.style, however, can be overwritten for each print call: :

You can plot any RR object using plot(RR). See plot.RRuni for possible parameters.


Stefan C. Schmukle, Felix D. Schönbrodt & Mitja D. Back


Back, M. D., Schmukle, S. C. & Egloff, B. (in press). A closer look at first sight: Social relations lens model analyses of personality and interpersonal attraction at zero acquaintance. European Journal of Personality.

Bonito, J. A., & Kenny, D. A. (2010). The measurement of reliability of social relations components from round-robin designs. Personal Relationships, 17, 235 - 251.

Kenny, D. A. (1994). Interpersonal perception: A social relations analysis. New York: Guilford Press.

Kwan, V. S. Y., John, O. P., Kenny, D. A., Bond, M. H., & Robins, R. W. (2004). Reconceptualizing individual differences in self-enhancement bias: An interpersonal approach. Psychological Review, 111, 94–110.

Lashley, B. R., & Bond, C. F., Jr. (1997). Significance testing for round robin data. Psychological Methods, 2, 278-291.

See Also

RR.style, getEffects, plot_missings, long2matrix, matrix2long, plot.RRuni, RR.summary, selfCor, parCor


# The example data are taken from the "Mainz Freshman Study" and consist 
# of ratings of liking as well as ratings of the metaperception of 
# liking at zero-acquaintance using a Round-Robin group of 54 participants 

# ----  Single group   --------------------------------------

# Load data frame in long format - it contains 4 variables:
#liking ratings indicator a (liking_a, "How likeable do you find this person?")  
#liking ratings indicator b (liking_b, "Would you like to get to know this person?")
#metaliking ratings indicator a (metaliking_a, "How likeable does this person find you?")
#metaliking ratings indicator b (metaliking_b, "Would this person like to get to know you?")

#manifest univariate SRM analysis
RR1 <- RR(liking_a ~ perceiver.id*target.id, data=likingLong)

#manifest bivariate SRM analysis
RR2 <- RR(liking_a + metaliking_a ~ perceiver.id*target.id, data=likingLong)

#latent (construct-level) univariate SRM analysis
RR3 <- RR(liking_a / liking_b ~ perceiver.id*target.id, data=likingLong)

#latent (construct-level) univariate SRM analysis, define new variable name for the latent construct
RR3b <- RR(liking_a / liking_b ~ perceiver.id*target.id, data=likingLong, varname="liking")
# compare:

#latent (construct-level) bivariate SRM analysis
RR4 <- RR(liking_a/liking_b + metaliking_a/metaliking_b ~ perceiver.id*target.id, data=likingLong)

# prints output of the manifest univariate analysis
# in terms of actor and partner variance (default output labels)
print(RR1, measure1="behavior") 

# prints output of the manifest univariate analysis 
# in terms of perceiver and target variance (appropriate for perception data)
print(RR1, measure1="perception")

# prints output of the manifest bivariate SRM analysis appropriate 
# for perception-metaperception data  
print(RR2, measure1="perception", measure2="metaperception")

#prints output of the latent univariate SRM analysis
# appropriate for perception data  
print(RR3, measure1="perception") 

#prints output of the latent bivariate SRM analysis
# appropriate for perception-perception data  
# Note: you can use abbreviations of the strings "behavior", "perception", and "metaperception"
print(RR4, measure1="p", measure2="p") 

# ----  Multiple groups --------------------------------------

# data("multiLikingLong") is a variant of the liking data set (see above) with multiple groups

# set RR.style to "perception" (affects subsequent printing of objects)

#manifest univariate SRM analysis
RR1m <- RR(liking_a ~ perceiver.id*target.id|group.id, data=multiLikingLong)

#manifest bivariate SRM analysis
RR2m <- RR(liking_a + metaliking_a ~ perceiver.id*target.id|group.id, data=multiLikingLong)

#latent (construct-level) univariate SRM analysis
RR3m <- RR(liking_a / liking_b ~ perceiver.id*target.id|group.id, data=multiLikingLong)

#latent (construct-level) bivariate SRM analysis
RR4m <- RR(liking_a/liking_b + metaliking_a/metaliking_b ~ perceiver.id*target.id|group.id,

# prints output of the manifest univariate analysis
# in terms of actor and partner variance (default output labels)
print(RR1m, measure1="behavior") 

# prints output of the manifest univariate analysis 
# in terms of perceiver and target variance (appropriate for perception data)
print(RR1m, measure1="perception")

# ----  Multiple groups with missing values --------------------------------------

# a multi group data set with two variables:
# ex = extraversion ratings, and ne = neurotizism ratings

#manifest univariate SRM analysis, data set with missings
RR1miss <- RR(ex~perceiver.id*target.id|group.id, data=multiGroup, na.rm=TRUE)

#manifest univariate SRM analysis, data set with missings, 
# minimum 10 data points are requested for each participant
RR1miss <- RR(ex~perceiver.id*target.id|group.id, data=multiGroup, na.rm=TRUE, minData=10)

[Package TripleR version 1.2 Index]