0% found this document useful (0 votes)
37 views

Introduction to R for Social Scientists A Tidy Programming Approach 1st Edition Ryan Kennedy - The ebook is ready for instant download and access

The document provides information about various eBooks available for download at ebookmeta.com, including titles related to programming, statistics, and social sciences. It highlights the 'Introduction to R for Social Scientists: A Tidy Programming Approach' by Ryan Kennedy and Philip Waggoner, along with other recommended titles. The document also includes details about the publication and structure of the featured book.

Uploaded by

xhemajyune
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Introduction to R for Social Scientists A Tidy Programming Approach 1st Edition Ryan Kennedy - The ebook is ready for instant download and access

The document provides information about various eBooks available for download at ebookmeta.com, including titles related to programming, statistics, and social sciences. It highlights the 'Introduction to R for Social Scientists: A Tidy Programming Approach' by Ryan Kennedy and Philip Waggoner, along with other recommended titles. The document also includes details about the publication and structure of the featured book.

Uploaded by

xhemajyune
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 80

Read Anytime Anywhere Easy Ebook Downloads at ebookmeta.

com

Introduction to R for Social Scientists A Tidy


Programming Approach 1st Edition Ryan Kennedy

https://ebookmeta.com/product/introduction-to-r-for-social-
scientists-a-tidy-programming-approach-1st-edition-ryan-
kennedy/

OR CLICK HERE

DOWLOAD EBOOK

Visit and Get More Ebook Downloads Instantly at https://ebookmeta.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

An Introduction to Python Programming for Scientists and


Engineers Johnny Wei-Bing Lin

https://ebookmeta.com/product/an-introduction-to-python-programming-
for-scientists-and-engineers-johnny-wei-bing-lin/

ebookmeta.com

Programming with MATLAB for Scientists A Beginner s


Introduction 1st Edition Mikhailov Eugeniy E

https://ebookmeta.com/product/programming-with-matlab-for-scientists-
a-beginner-s-introduction-1st-edition-mikhailov-eugeniy-e/

ebookmeta.com

An Introduction to Statistics for Canadian Social


Scientists 3rd Edition Michael Haan & Jenny Godley

https://ebookmeta.com/product/an-introduction-to-statistics-for-
canadian-social-scientists-3rd-edition-michael-haan-jenny-godley/

ebookmeta.com

Health Psychology and Behaviour Change From Science to


Practice Tapper

https://ebookmeta.com/product/health-psychology-and-behaviour-change-
from-science-to-practice-tapper/

ebookmeta.com
Electrical Engineering Exam Prep Problems and Solutions
MLI Exam Prep Series Gupta

https://ebookmeta.com/product/electrical-engineering-exam-prep-
problems-and-solutions-mli-exam-prep-series-gupta/

ebookmeta.com

Small Business Sourcebook: 6 Volume Set: The


Entrepreneur's Resource 35th Edition Virgil L. Burton Iii
Project Editor
https://ebookmeta.com/product/small-business-sourcebook-6-volume-set-
the-entrepreneurs-resource-35th-edition-virgil-l-burton-iii-project-
editor/
ebookmeta.com

Beyond Imperfect Justice 1st Edition Talita Dias

https://ebookmeta.com/product/beyond-imperfect-justice-1st-edition-
talita-dias/

ebookmeta.com

A History of Data Visualization and Graphic Communication


Michael Friendly

https://ebookmeta.com/product/a-history-of-data-visualization-and-
graphic-communication-michael-friendly/

ebookmeta.com

Race Matters Animal Matters Fugitive Humanism in African


America 1840 1930 1st Edition Lindgren Johnson

https://ebookmeta.com/product/race-matters-animal-matters-fugitive-
humanism-in-african-america-1840-1930-1st-edition-lindgren-johnson/

ebookmeta.com
Awakening the Ashes An Intellectual History of the Haitian
Revolution 1st Edition Marlene L Daut

https://ebookmeta.com/product/awakening-the-ashes-an-intellectual-
history-of-the-haitian-revolution-1st-edition-marlene-l-daut/

ebookmeta.com
Introduction to R for
Social Scientists
Chapman & Hall/CRC
Statistics in the Social and Behavioral Sciences Series
Series Editors
Jeff Gill, Steven Heeringa, Wim J. van der Linden, Tom Snijders
Recently Published Titles
Multilevel Modelling Using Mplus
Holmes Finch and Jocelyn Bolin
Bayesian Psychometric Modeling
Roy Levy and Robert J. Mislevy
Applied Survey Data Analysis, Second Edition
Steven G. Heering, Brady T. West, and Patricia A. Berglund
Adaptive Survey Design
Barry Schouten, Andy Peytchev, and James Wagner
Handbook of Item Response Theory, Volume One: Models
Wim J. van der Linden
Handbook of Item Response Theory, Volume Two: Statistical Tools
Wim J. van der Linden
Handbook of Item Response Theory, Volume Three: Applications
Wim J. van der Linden
Bayesian Demographic Estimation and Forecasting
John Bryant and Junni L. Zhang
Multivariate Analysis in the Behavioral Sciences, Second Edition
Kimmo Vehkalahti and Brian S. Everitt
Analysis of Integrated Data
Li-Chun Zhang and Raymond L. Chambers

Multilevel Modeling Using R, Second Edition


W. Holmes Finch, Joselyn E. Bolin, and Ken Kelley
Modelling Spatial and Spatial-Temporal Data: A Bayesian Approach
Robert Haining and Guangquan Li
Handbook of Automated Scoring: Theory into Practice
Duanli Yan, André A. Rupp, and Peter W. Foltz
Interviewer Effects from a Total Survey Error Perspective
Kristen Olson, Jolene D. Smyth, Jennifer Dykema, Allyson Holbrook, Frauke Kreuter, and Brady T. West

Measurement Models for Psychological Attributes


Klaas Sijtsma and Andries van der Ark

Big Data and Social Science: Data Science Methods and Tools for Research and Practice,
Second Edition
Ian Foster, Rayid Ghani, Ron S. Jarmin, Frauke Kreuter and Julia Lane

Understanding Elections through Statistics: Polling, Prediction, and Testing


Ole J. Forsberg

Analyzing Spatial Models of Choice and Judgment, Second Edition


David A. Armstrong II, Ryan Bakker, Royce Carroll, Christopher Hare, Keith T. Poole and Howard
Rosenthal

Introduction to R for Social Scientists: A Tidy Programming Approach


Ryan Kennedy and Philip Waggoner

For more information about this series, please visit: https://www.routledge.com/Chapman--Hall-


CRC-Statistics-in-the-Social-and-Behavioral-Sciences/book-series/CHSTSOBESCI
Introduction to R for
Social Scientists
A Tidy Programming Approach

by
Ryan Kennedy
Philip Waggoner
First edition published 2021
by CRC Press
6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742

and by CRC Press


2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN

© 2021 Taylor & Francis Group, LLC

CRC Press is an imprint of Taylor & Francis Group, LLC

The right of Ryan Kennedy and Philip Waggoner to be identified as authors of this work has been
asserted by him/her/them in accordance with sections 77 and 78 of the Copyright, Designs and
Patents Act 1988.

Reasonable efforts have been made to publish reliable data and information, but the author and pub­
lisher cannot assume responsibility for the validity of all materials or the consequences of their use.
The authors and publishers have attempted to trace the copyright holders of all material reproduced
in this publication and apologize to copyright holders if permission to publish in this form has not
been obtained. If any copyright material has not been acknowledged please write and let us know so
we may rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced,
transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or
hereafter invented, including photocopying, microfilming, and recording, or in any information
storage or retrieval system, without written permission from the publishers.

For permission to photocopy or use material electronically from this work, access www.copyright.
com or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA
01923, 978-750-8400. For works that are not available on CCC please contact mpkbookspermis­
[email protected]

Trademark notice: Product or corporate names may be trademarks or registered trademarks and are
used only for identification and explanation without intent to infringe.

Library of Congress Cataloging-in-Publication Data

ISBN: 9780367460709 (hbk)


ISBN: 9780367460723 (pbk)
ISBN: 9781003030669 (ebk)

Typeset in Computer Modern font


by KnowledgeWorks Global Ltd.
Contents

Preface vii
Overview of Chapters . . . . . . . . . . . . . . . . . . . . . . . . . viii
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . ix

1 Introduction 1
1.1 Why R? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Why This Book? . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Why the Tidyverse? . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 What Tools Are Needed? . . . . . . . . . . . . . . . . . . . . 7
1.5 How This Book Can be Used in a Class . . . . . . . . . . . . 9
1.6 Plan for the Book . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Foundations 13
2.1 Scripting with R . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Understanding R . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Working Directories . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Setting Up an R Project . . . . . . . . . . . . . . . . . . . . 22
2.5 Loading and Using Packages and Libraries . . . . . . . . . . 24
2.6 Where to Get Help . . . . . . . . . . . . . . . . . . . . . . . 29
2.7 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . 31

3 Data Management and Manipulation 33


3.1 Loading the Data . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 Data Wrangling . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Grouping and Summarizing Your Data . . . . . . . . . . . . 45
3.4 Creating New Variables . . . . . . . . . . . . . . . . . . . . . 48
3.5 Combining Data Sets . . . . . . . . . . . . . . . . . . . . . . 55
3.6 Basic Descriptive Analysis . . . . . . . . . . . . . . . . . . . 57
3.7 Tidying a Data Set . . . . . . . . . . . . . . . . . . . . . . . 62
3.8 Saving Your Data Set for Later Use . . . . . . . . . . . . . . 64
3.9 Saving Your Data Set Details for Presentation . . . . . . . . 65

4 Visualizing Your Data 69


4.1 The Global Data Set . . . . . . . . . . . . . . . . . . . . . . 69
4.2 The Data and Preliminaries . . . . . . . . . . . . . . . . . . 70

v
vi Contents

4.3 Histograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4 Bar Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.5 Scatterplots . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.6 Combining Multiple Plots . . . . . . . . . . . . . . . . . . . . 90
4.7 Saving Your Plots . . . . . . . . . . . . . . . . . . . . . . . . 94
4.8 Advanced Visualizations . . . . . . . . . . . . . . . . . . . . 95
4.9 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . 99

5 Essential Programming 101


5.1 Data Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2 Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.4 Conditional Logic . . . . . . . . . . . . . . . . . . . . . . . . 112
5.5 User-Defined Functions . . . . . . . . . . . . . . . . . . . . . 114
5.6 Making Your Code Modular . . . . . . . . . . . . . . . . . . 119
5.7 Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.8 Mapping with purrr . . . . . . . . . . . . . . . . . . . . . . 132
5.9 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . 135

6 Exploratory Data Analysis 137


6.1 Visual Exploration . . . . . . . . . . . . . . . . . . . . . . . . 138
6.2 Numeric Exploration . . . . . . . . . . . . . . . . . . . . . . 145
6.3 Putting it All Together: Skimming Data . . . . . . . . . . . . 149
6.4 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . 151

7 Essential Statistical Modeling 153


7.1 Loading and Inspecting the Data . . . . . . . . . . . . . . . . 153
7.2 t-statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.3 Chi-square Test for Contingency Tables . . . . . . . . . . . . 158
7.4 Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.5 Ordinary Least Squares Regression . . . . . . . . . . . . . . . 161
7.6 Binary Response Models . . . . . . . . . . . . . . . . . . . . . 171
7.7 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . 183

8 Parting Thoughts 185


8.1 Continuing to Learn with R . . . . . . . . . . . . . . . . . . 185
8.2 Where To Go from Here . . . . . . . . . . . . . . . . . . . . 186
8.3 A Final Word . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Bibliography 189

Index 193
Preface

This book is a distillation of our approach to programming in R for exploring


and explaining a variety of social science behavior. It is the product of our
own notes from teaching R to many groups of people, from undergraduates
and graduates to faculty members and practitioners. Indeed, this book would
be impossible without the support from and engagement by many students,
colleagues, and folks generally interested in our work. We are deeply grateful
to these people and are excited to share our work in this form.
In this book, we have two primary goals:

1. To introduce social scientists, both in and out of academia, to R. R is


at the same time a programming language as well as an environment
to do statistics and data science. As R is open source (meaning
open contribution of packages via the Comprehensive R Archive
Network (CRAN)), there are many powerful tools available to users
in virtually any discipline or domain to accomplish virtually any
statistical or data science task. Our goal, then, is to cover the tools
we find most helpful in our research as social scientists.
2. As the subtitle of the book suggests, we are interested in exposing
social scientists to the “tidy” approach to coding, which is also
referred to as the Tidyverse. Though we expound on this in much
greater detail throughout, the Tidyverse is a collection of packages
all built around consistency and making tasks in R streamlined,
with the product being a clean, clear rendering of the quantity or
object of interest. And as this is an introductory text, we suggest
it is most valuable to start from the Tidyverse framework, rather
than base R, to reduce the steepness of the learning curve as much
as possible.

vii
viii Preface

Overview of Chapters
In the book, we cover the following topics for a full introduction to tidy R
programming for social scientists:

1. Introduction: Motivation for the book, getting and using R


2. Foundations: Packages, libraries, and object-oriented programming
3. Data Management: Getting your data into workable, tidy form
4. Visualization: Visual presentations using ggplot2 and the gram­
mar of graphics
5. Essential Programming: Interacting with base R to learn func­
tional programming
6. Exploratory Data Analysis: Exploring relationships and data in
the Tidyverse
7. Essential Statistical Modeling: Fitting and diagnosing widely
used models in the Tidyverse
8. Parting Thoughts: Conclusion and wrap-up
Preface ix

Acknowledgements
Though the final product we present in this book is our own (wherein we
accept full responsibility for any errors), we could not have produced this
book without the help and influence of many other excellent social scientists
and programmers. Thus, in the same open-source spirit, we would like to
acknowledge the following people for sharing and/or making code available:
Ling Zhu, Scott Basinger, Thomas Leeper, Max Kuhn, and Hadley Wickham.

About the Authors


Dr. Ryan Kennedy is an associate professor of political science at the University
of Houston and a research associate for the Hobby Center for Public Policy.
His work in computational social science has dealt with issues of forecasting
elections, political participation, international conflicts, protests, state failure,
and disease spread. He has published in Science, the American Political Science
Review, Journal of Politics, and International Studies Quarterly, among others.
These articles have won several awards, including best paper in the American
Political Science Review, and have been cited over 1,700 times since 2013.
They have also drawn attention from media outlets like Time, The New York
Times, and Smithsonian Magazine, among others. For more information, visit
https://ryanpkennedy.weebly.com/.
Dr. Philip Waggoner is an assistant instructional professor of computational
social science at the University of Chicago and a visiting research scholar at the
Institute for Social and Economic Research and Policy at Columbia University.
He is also an Editorial Board Member at the Journal of Mathematical Sociology
and an Associate Editor at the Journal of Open Research Software, as well as a
member of easystats (a software group that tends to an ecosystem of packages
making statistics in R easy). He is the author of the recent book, Unsupervised
Machine Learning for Clustering in Political and Social Research (Cambridge
University Press, 2020). And in addition to authoring and co-authoring several
R packages, his work has appeared or is forthcoming in numerous peer-reviewed
journals including the Journal of Politics, Journal of Mathematical Sociology,
Journal of Statistical Theory and Practice, Journal of Open Source Software,
among others. For more information, visit https://pdwaggoner.github.io/.
1
Introduction

R is a widely used statistical environment that has become very popular in the
social sciences because of its power and extensibility. However, the way that R
is taught to many social scientists is, we think, less than ideal. Many social
scientists come to R after learning another statistical program (e.g. SAS, SPSS,
or Stata). There are a variety of reasons they do this, such as finding there
are some tasks they cannot do in these other programs, collaborating with
colleagues who work in R, and/or being told that they need to learn R. For
others, R may be the first statistical program they encounter, but they come
to it without any kind of experience with programming (or even, increasingly,
using a text interface).
This is part of why “learning R” can be frustrating. Learning R for the first
time, most students are shown how to undertake particular tasks in the style
of a cookbook (i.e., here is how you conduct a regression analysis in R), with
little effort dedicated to developing an underlying intuition of how R works as
a language. As a result, for those who have experience with other statistical
programs, R comes across as a harder way to do the same things they can do
more easily in another program. This cookbook approach can also produce
frustration for those who are coming to R as their first statistical analysis
environment. Working with R in such a way becomes a process of copying and
pasting, with only a shallow understanding of why things have a particular
structure and, thus, difficulty moving beyond the demonstrated examples.
Finally, the cookbook approach is, in many ways, a holdover from the pre-
internet era, when large coding manuals were a critical reference for finding out
how to do anything in a complex program. These books had to be exhaustive,
since they were needed as much for reference as for learning the environment.
Today, however, there is a plethora of online materials to demonstrate how
to perform specific tasks in R, and exhaustiveness can come at a cost to
comprehension. What most beginners with R need is a concrete introduction
to the fundamentals, which will allow them to fully leverage the tools available
online.
This book is focused on equipping readers with the tools and knowledge to
overcome their initial frustration and fully engage with R. We introduce a
modern approach to programming in R – the Tidyverse. This set of tools
introduces a consistent grammar for working with R that allows users to

1
2 Introduction

quickly develop intuitions of how their code works and how to conduct new
tasks. We have found this increases the speed of learning and encourages
creativity in programming.
This book is based on an intensive 3-day workshop introducing R, taught by
one of the authors at the Inter-University Consortium for Political and Social
Research (ICPSR), as well as numerous workshops and classes (at both the
undergraduate and graduate levels) conducted by both authors. The goal is to
have the reader: (1) understand and feel comfortable using R for data analysis
tasks, (2) have the skills necessary to approach just about any task or program
in R with confidence, and (3) have an appreciation for that which R allows a
researcher to do and a desire to further their knowledge.

1.1 Why R?
If you have picked up this book, chances are that you already have a reason
for learning R. But let’s go through some of the more common reasons why
conducting your research in R is a good idea.
One of the major attractions of R is that it is free and open source. R was
created by Ross Ihaka and Robert Gentleman, of the Department of Statistics
at the University of Auckland, in the early 1990s (Ihaka and Gentleman, 1996).
It was designed to be a dialect of the popular S-PLUS statistical language
that was developed for Bell Labs. Unlike S-PLUS, however, R was released
under the GNU General Public License, which allows users to freely download,
alter, and redistribute it.
The result of this open source license is that R is accessible to everyone, without
exorbitant licensing fees. It is also regularly updated and maintained, with
frequent releases that allow for quick fixing of bugs and the addition of new
features.1 Perhaps most importantly, the open source nature allows users to
contribute their own additions to R in the form of “packages.” You will often
hear R users say, in response to a question about how to do something in
R, “There is a package for that.” From running advanced statistical models
to ordering an Uber (the ubeR package) or making a scatterplot with cats
instead of points (the CatterPlots package), it is likely that someone has
developed a way to do it in R. As of 2015, there were over 10,000 packages
on the Comprehensive R Archive Network (CRAN), with scores more being
created all the time. Indeed, the book you are reading now was originally
written completely in R using R Markdown and the bookdown package (Xie,
2019).
1 The major new release usually comes around October, so you should, at a minimum,

update your R system around this time.


Why R? 3

Another reason for learning R is flexibility. R is both a language and an


“environment” where users can do statistics and analysis. This covers a lot of
ground – from data visualization and exploratory data analysis, to complex
modeling, advanced programming and computation. R allows you to scrape
data from websites, interact with APIs, and even create your own online
(“Shiny”) applications. This flexibility, in turn, allows you as a researcher to
undertake a wider variety of research tasks, some of which you might not even
have considered previously.
Though R is wonderfully flexible, fast, and efficient, the learning curve can
be quite steep, as users must learn to write code. For example, in some other
popular statistics programs, users can point-and-click on the models they
want with little to no interface with the mechanics behind what is going on.
This is both good and bad. It is good in that the learning curve in point­
and-click interfaces is much gentler and accommodating. However, it is not a
great thing in that it restricts user interface with the process of coding and
statistical analysis. Point-and-click encourages minimal interaction with the
data and tasks, and ultimately following the well-trod path of others, rather
than creating your own path.
The coding process required by R is also increasingly becoming the standard
in the social sciences. The “replication revolution” in the social sciences has
encouraged/required scholars to not only think about how they will share their
results, but also how they will share the way they got those results (King,
1995; Collaboration et al., 2015; Freese and Peterson, 2017). Indeed, several
of the top social science journals – including American Economic Review,
Journal of Political Economy, PLOS ONE, American Journal of Political
Science, and Sociological Methods and Research, among others – now require
submission of replication code and/or data prior to publication. Still others
strongly encourage the submission of replication code. R code is ideal for this
purpose – there are almost no obstacles to other scholars downloading and
running your R code. The same cannot be said about programs that require
licenses and point-and-click interaction.
This replication process can also be useful for your own work. There is a
common refrain among computer programmers that, “If you do not look at
your code for a month, and have not included enough comments to explain what
the commands do, it might as well have been written by someone else.” The
same is true of point-and-click software. If you have a process that is reasonably
complex and you do not work with it for a while, you might completely forget
how to do it. By writing an R script, you have a written record of how you
did each task, which you can easily execute again.
Additionally, we recommend the use of R in a variety of applied research
settings because of the high-quality options for visualization. Broadly, R uses
layers to build plots. This layering provides many flexible options for users
to interact directly with their visual tools to produce high-quality graphical
4 Introduction

depictions of quantities of interest. Further, some packages, e.g., ggplot2, use


something called the “grammar of graphics” (Wilkinson, 2012), which is a
process of streamlining the building of sophisticated plots and figures in R
(Wickham et al., 2019b; Wickham, 2009; Healy, 2018). This and other similar
packages offer users even more advanced tools for generating high-quality,
publication-ready visualizations (Lüdecke et al., 2020).
And finally, we highly recommend R, because of the community. From blogs
and local “R User” community groups in cities throughout the world to a
host of conferences (e.g., UseR, EARL, rstudio::conf), the R community is
a welcoming place. Further, the open source nature of R contributes to a
communal atmosphere, where innovation and sophistication in programming
and practice are highly prioritized. Put simply, R users want R to be the best it
can be. The result is an inclusive community filled with creative programmers
and applied users all contributing to this broader goal of a superior computing
platform and language. And in the words of one of the most influential modern
R developers, Hadley Wickham (a name you will see a lot in this book)
(Waggoner, 2018a),
. . . When you talk about choosing programming languages, I always say
you shouldn’t pick them based on technical merits, but rather pick them
based on the community. And I think the R community is like really, really
strong, vibrant, free, welcoming, and embraces a wide range of domains.
So, if there are people like you using R, then your life is going to be much
easier.
Therefore, though tricky to learn, if users are engaged in any way with data,
whether working for an NGO, attending graduate school, or even legal work
in many cases, users will be glad they opted to begin in R and endured the
hard, but vastly rewarding work up front.

1.2 Why This Book?


There are many good introductions to R (Monogan III, 2015; Li, 2018; Wick-
ham and Grolemund, 2017), and we will point you towards several of them
throughout. Yet, this book provides a unique and beneficial starting place,
particularly for social scientists. There are several features of this book that
lead us to this conclusion.
First, it is written specifically for social scientists. Many of the best intro­
ductions to R are written for those who are coming from other programming
languages (e.g. Python, C++, Java) or from database design (e.g., Spark,
SQL). The assumption is that the reader will already be pretty familiar with
programming concepts, like objects, functions, scope, or even with R itself.
This, however, does not apply to most social scientists, who usually do not
Why This Book? 5

come in with experience in either programming or database management, and


will, therefore, find these concepts unfamiliar, and often quite vexing. We also
include details that are likely to be particularly relevant to social scientists,
such as how to automatically generate tables using R.
Second, we write this as a genuine introduction course, not as a cookbook.
Cookbooks have their place for learning R. They provide handy guides to
completing particular tasks, and are indispensable as you go through your work.
But, just as following the steps to make bread is not the same as understanding
how bread is made, copying code from a book or online resource is not the
same as developing the skill base to flourish as a data analyst who uses R. For
a similar reason, unlike some other introductions, we do not create any special
software specifically for this book – you are here to learn R, not a software we
design. This book concentrates on helping you to understand what you are
doing and why. After working your way through this book, you should be able
to undertake a range of tasks in R and more easily learn new ones and even
troubleshoot your own errors.
Third, we provide a thoroughly modern introduction to R. While using the
word “modern” in any book is a risky proposition, we mean this in terms
of using the latest tools as of this writing to help you be as productive as
possible. This means using the RStudio integrated development environment
(IDE) to assist you in writing and running code, R projects to keep track of
and organize your work, and the Tidyverse set of tools to make your code
more modular and comprehensible.
Fourth, we concentrate on the areas of learning R that you will use the most
often and are typically the most frustrating for beginners. Many people have
heard of the “Dunning-Kruger effect”, which is the tendency for people with low
ability to overestimate their ability (Kruger and Dunning, 1999). Many people
forget about the inverse part of the Kruger-Dunning effect – the tendency for
experts to underestimate the difficulty of tasks for which they are an expert.
This sometimes exhibits itself in R introductions that attempt to introduce
quite advanced statistical models, but give little to no attention to issues like
file systems and data management. Yet, things like setting working directories
are some of the most common stumbling blocks for students and data scientists
will often say that 80% of their job is managing and shaping data, but this is
almost never reflected in introductory texts. We try to correct this by giving a
significant focus in the beginning to these fundamental skills.
Fifth, this is a very concise introduction to R. We do not intend to cover, nor
do you need to know, everything about the internal workings of R or all of the
different options and functions in the Tidyverse. For a working social scientist,
the goal is to learn the parts you are likely to use most often, and gain enough
understanding of how R functions to get help with the unique situations. We
would argue that many “introductions” suffer from too much detail, where
what is important is buried under an avalanche of options you are unlikely to
use and will promptly forget.
6 Introduction

Finally, the analysis demonstrated throughout is based on real survey data


from the American National Election Study (ANES) and a large cross-country
data set created by Professor Pippa Norris at Harvard University. We selected
these examples because they are real social science data, thus allowing users to
get their hands dirty in a very practical way, mirroring many contexts they are
more likely to see in their future work, rather than conducting a demonstration
using either pre-cleaned data or data about which the reader will have no
intuition. We have not cleaned or processed the data in any way, so it provides
a good example of what you will encounter in the “real world.” You will be
using the exact same data you would get from downloading these data sets
from the internet.

1.3 Why the Tidyverse?


As was mentioned in the last section, this book is somewhat unique among
social science introductions in our reliance on tools related to the “Tidyverse.”
This is a set of tools that have been collected and curated to make your work
in R more productive. The Tidyverse is actually a collection of R packages
(which we will discuss later), which all share an underlying design philosophy,
grammar and structure (Wickham, 2017; Wickham and Grolemund, 2017;
Wickham et al., 2019a).
There are several reasons we prefer to concentrate on the Tidyverse. First, it
will allow us to get started with real data analysis, quickly. For those who do
not start with a programming background, one of the more intimidating things
about R is the introduction of programming concepts that usually comes with
it. The basis of the R language was designed for Bell Labs engineers more than
50 years ago. The Tidyverse grammar was designed for data analysts from
a wide range of backgrounds. The tools in the Tidyverse allow you to start
getting meaningful data analysis right away.
Just as importantly, the shared design strategy of Tidyverse packages means
that you will have an easier time learning how to do new things. The consistent
design means that the intuitions you develop in this book should serve you
well as you use new functions in the Tidyverse, allowing you to expand your
knowledge more quickly.
Second, the Tidyverse grammar is more comprehensible for people coming
from other statistical packages. The use of characters like $ or [[ ]] is often
one of the most intimidating parts of learning R for beginners. We will learn
these things in this book, but we will only do so after learning a range of
consistent and simple functions that will achieve the main tasks you wish to
accomplish in data analysis.
What Tools Are Needed? 7

Third, the Tidyverse usually has a single obvious method for achieving a goal.
This draws from the philosophy that there should be one, and preferably only
one, obvious way to do a task. This is very useful for being able to learn quickly
and to understand what is being done in any example. A simple illustration of
this is creating a new variable that is our original variable times 1,000. In base
R, there are at least three ways to do this.
dataset$new_variable <- dataset$old_variable * 1000

dataset[["new_variable"]] <- dataset[["old_variable"]] * 1000

dataset[, "new_variable"] <- dataset[, "old_variable"] * 1000

Since there is no right way to do it, you will often find different preferences
within the same group of scholars (and sometimes within the same code). In
contrast, there is only one way to create this variable in the Tidyverse:
dataset <- dataset %>%
mutate(new_variable = old_variable * 1000)

From our experience, this makes it much easier to keep track of what is being
done, share your code with others, and avoid frustration spending hours finding
out what may have gone wrong with your analysis.
Fourth, while this book is intended primarily as an introduction to R, those
who already know some R will find it useful for learning how to write “tidy”
code in R. Many utilities in R are moving towards the Tidyverse structure
and grammar, and this book will provide the familiarity with the Tidyverse
needed to leverage these tools effectively.
Finally, the tools provided in the Tidyverse are extremely powerful. The
ggplot2 package, for example, has become the standard for most data visual­
ization in R. The use of a consistent grammar makes it much easier to extend
and develop than traditional R packages. Think about it like learning a foreign
language. If the rules about, for example, how nouns are used changes from
situation to situation, this makes it more difficult to learn the language and
create your own statements. If, on the other hand, there is consistency in the
rules, you can apply those rules to extend to new situations much more easily.

1.4 What Tools Are Needed?


Hopefully, if you are reading this book and have made it to this point, you
are sufficiently convinced of R’s value for both programming and statistical
analysis, if you were not already convinced. So at this point we transition
8 Introduction

slightly away from a high-level discussion of R, and toward more practical


aspects of how to get started with R.

1.4.1 Downloading R and RStudio


Before getting to into the environment, we first need to introduce precisely how
to access the environment. It is undeniably daunting to open up R for the first
time, and see a blank screen. Thus, we highly recommend the use of RStudio,
which is a user-friendly integrated development environment (IDE) that directly
interacts with the language of R (RStudio Team, 2015). In RStudio you can do
all kind of things, from practicing writing code before running it (e.g., scripts),
to writing reports (e.g., using markdown), to hopefully someday developing
and releasing your own R packages. All of these and more are possible within
RStudio directly.
Moreover, RStudio includes a number of useful features that make working
in R easier. This includes automatically closing parentheses and brackets
for you, highlighting which closed parentheses correspond with a particular
open parenthesis, providing hints on how to complete the command you are
writing, color-coding of your scripts, providing keyboard shortcuts for common
commands, and marking likely errors. Other than perhaps the Emacs Speaks
Statistics (ESS) suite for Emacs (which we do not recommend unless you
already use and like Emacs), RStudio is the most complete IDE for users of R.
So where and how can users get R and RStudio? As mentioned earlier, perhaps
one of the best things about R is that it is free. Users simply need to go to
the R-Project page, http://www.r-project.org/, to first download R. Then,
once R is successfully installed, go to the RStudio page, http://rstudio.com,
to download RStudio onto your machine. For step-by-step download and
installation procedures, with illustrations, you can go to the companion website,
https://i2rss.weebly.com.
For those of you who have already downloaded and installed R and RStudio,
we recommend you take some time to check whether you are working with
the latest version, and, if not, to update both systems. To check your version
of R, simply run the command ,version (or for those of you working at the
command line, R --version).2 To check your version of RStudio, simply run
the command, rstudioapi::getVersion() to return only the version number,
or rstudioapi::versionInfo() to get the version number, mode (desktop,
cloud, etc.), and the citation format for properly citing the use of RStudio.3
2 A simpler tip is, when you open a new RStudio session, the version of R currently

running will appear automatically in the open console window.


3 Note that when reading a version number for any software, the first value is the major

release, the middle value is more minor release, and subsequent values (3rd and 4th, e.g.,
“9000”) reflect the most minor changes to the software. For example, upon writing this book,
the latest release of R is 3.6.1, meaning there have been 3 major releases of R, 6 slightly
minor releases, and 1 minor fix/release for the current version.
How This Book Can be Used in a Class 9

1.5 How This Book Can be Used in a Class


In addition to aiding the applied researcher in individual tasks and contexts,
we also envision this book being used as a complementary text in the classroom.
Whether in substantive social science classes that include a computational
component, or in computationally intensive classes within the social sciences,
we encourage widespread use of this book for the purpose of developing more
efficient coding and programming practices.
To assist in classroom use, we design each chapter as a fully self-contained R
session. This means that there are no parts of the online code sets that are left
unexplained, no need to refer to earlier chapters to check whether a step is
missed, no conflicts with earlier code, and no concerns about losing information
for later if you shut down your R session. This does result in a certain amount
of repetition in the code, which is a strategic choice on our part. As the Russian
proverb states, “Repetition is the mother of learning.” Similarly, there is strong
scientific evidence that timed repetition is critical for mastery of tasks like
mathematics, foreign languages, and computer programming (Oakley, 2014).
For certain steps that are a part of any R session – setting a working directory,
loading data, loading libraries – we want them to become automatic for the
reader. Once this book is finished, this repetition should allow the user to
immediately begin their given task without having to remind themselves of
basic steps.
We also embed practice questions throughout the chapters for readers to
work through and keep in mind as they code. Given our goal of efficient
programming and deeper understanding of rigorous technical process, we will
also include many conceptual high-level questions in these exercises. These
“substantive pauses” in chapters reinforce our main goal in this book, rather
than providing just a technical manual with a list of useful functions. Exercises
are usually divided into “basic”, “intermediate”, and “advanced.” The basic
problems usually ask for modifications of code already introduced and require
minimal understanding of what is happening and/or the relationship between
concepts. These are for those who just want to do the things introduced in
the book quickly. The intermediate problems will usually ask for some deeper
understanding of what is happening in the introduced processes and may
ask the reader to find new information. Finally, the advanced problems ask
readers to undertake either a more complex task or to find some information
on a related process not formally introduced in the chapter. Completing these
exercises should result in the reader becoming comfortable with undertaking
unfamiliar tasks on their own.
Finally, we provide a range of online documentation to assist in classroom
instruction. Many of the most difficult challenges that instructors face are
10 Introduction

completely ignored by introductory textbooks, usually because they are consid­


ered “too basic” for inclusion. We provide things like step-by-step installation
instructions for R and RStudio, additional tutorials on basic statistics, and
script versions of all the chapters that can be downloaded, directly updated (if
so desired), and used in classes. This collection is ever expanding, so instructors
can check to see if we have a resource for their particular needs (and contact
the authors with requests for materials that are not yet covered). All of these
resources are free to use or modify for the instructor’s needs, and, in the same
open spirit, we encourage direct communication with students, researchers and
instructors. The book website is at https://i2rss.weebly.com.
Instructors will probably choose to emphasize some parts of the text over others.
For example, undergraduates may not need the introduction to programming
that is included later in the book, and this can be safely skipped. Similarly,
institutions that have a separate data visualization course may decide to focus
elsewhere and have students use a more specialized text to learn visualization.
We have tried to make each chapter relatively self-contained so that instructors
can pick and choose if that fits with what they are trying to accomplish in
their courses.

1.6 Plan for the Book


Here is the plan for the rest of the book.
Foundations: Chapter 2 provides the building blocks for the rest of the book.
It starts with using R as an interactive environment. It then discusses the
foundations of R – objects and functions. This sets up everything that follows,
and will allow readers to understand how R is functioning throughout. Next,
we introduce the process of setting working directories and working with R
packages, both necessary for any work with R. Finally, we introduce the reader
to the packages used in the book and where they can go for extra help.
Data Management: More than 80% of data analysis is data management. This
chapter provides details of how to conduct most major data management
tasks using a tidy approach. This includes selecting variables, filtering data,
summarizing data, conducting summaries by groups, combining commands
with the pipe (%>%), reshaping data, and combining data sets. Within this
context, the chapter will also introduce how to create cross-tabulations and
comparisons of means, since these types of analysis are a natural extension
of data management. This chapter also introduces the stargazer package
to automatically generate publication-quality tables in R (Hlavac, 2018). We
have found this to be an entry point that is easy to understand for beginners,
building confidence in their use of R throughout the rest of the learning process.
Plan for the Book 11

This chapter also serves as a practical introduction to the philosophy and


structure of the Tidyverse.
Visualization: The next chapter deals with visualization and graphics in R,
introducing the ggplot2 package (Wickham et al., 2019b). This chapter focuses
on the structure of graphics objects using the “grammar of graphics,” which
is at the heart of ggplot (hence, “gg”). It also introduces concepts like the
scope of a variable through examples in graphing, mapping aesthetics, and
layering plot objects. The chapter does not go into nearly the detail of other
books focused on graphics, but it provides a general entry point to creating
basic and advanced graphics in a tidy manner.
Programming: While base R is only used sparingly throughout the rest of
the book, this chapter gets into much greater depth. We introduce the data
structures of R (vectors, matrices, lists, data.frames), as well as the attributes
of basic classes (character, numeric, factor). Students learn about indexing
for each data structure, as well as some of their unique behaviors. This leads
into a discussion of how to use conditions and loops to automate repetitive
tasks, and how to save those programs as user-defined functions. We end by
discussing the creation of modular code and providing some examples of useful
functions.
Exploratory Data Analysis: One of the first steps in any data analysis is getting
to know your data through exploratory data analysis (EDA). In this chapter,
we begin discussion of statistical analysis in R by introducing some of the tools,
especially the skimr package, for conducting this type of analysis (McNamara
et al., 2019). We demonstrate how to visually and numerically analyze data
using R, as well as how to “skim” the data to provide powerful extensions
beyond the traditional summary() command in base R.
Essential Statistical Modeling: The final substantive chapter takes the reader
through an introduction to correlation and regression in R, demonstrating how
to conduct some of the most common types of analysis in the social sciences.
We demonstrate t-tests, chi-squared tests, and regression, as well as a range
of diagnostic tests, all based in the tidy R approach. For example, we use
the broom package (Robinson, 2014) for tidy inspection of model output, and
the tidy-friendly performance (Lüdecke et al., 2019) and see (Lüdecke et al.,
2020) packages from easystats to diagnose and visualize influential observations.
We also introduce logistic and probit regression and offer a demonstration of
how they differ from OLS regression in R. We also show the reader how to
automatically create publication-quality tables of their regression models.
Finally, we will conclude with a few thoughts on where the reader can go from
here, as well as some parting tips for making the most of your R analysis.
2
Foundations

The goal of this chapter is to introduce you to key concepts used throughout
the book. The first part will focus on philosophy and terminology of R. The
second part of this chapter will focus on setting up the packages and libraries
you need and how to download useful additional tools. The third part will
introduce some of the resources you can use to help you out as you develop
your R skills.
We will not be going into any kind of depth about the underlying design
philosophy of R or some of the deeper programming principles of Base R.
There are plenty of other resources for readers to obtain this kind of knowledge
(Matloff, 2011; Leemis, 2016). Our goal here is to construct a solid platform for
you to conduct a wide range of social science work. After reading this chapter,
you should find it relatively easy to follow the subsequent chapters, as well as
to utilize online tutorials. We are assuming absolutely no previous experience
with R and RStudio. For those of you who have some previous background
with using R and RStudio, you can safely skim through some of the parts
that might already be familiar, but we do recommend at least taking a casual
glance at the subsections of this chapter to make sure we are not leveraging
something with which you may not have previously worked.
Before you start this chapter, be sure you have R and RStudio downloaded
and installed, since we will be using both. If you need help with this process,
or would like to start by having a more detailed understanding of the various
parts of RStudio, you can consult with the online resources before moving on.

2.1 Scripting with R


When you open RStudio for the first time, it will look like the picture in Figure
2.1. You will see that it splits your screen into three parts. On the left, you
will see a window that has the R console. Think of this like the command line
for R. Inside the window is a > which shows you that R is ready to accept a
command. When you type something into this window and hit enter, R will
execute (or “run”) that command.

13
14 Foundations

FIGURE 2.1
A View of RStudio Opened for the First Time
Give it a try. Type 1 + 1 in the console and hit Enter.1 You will see that R
prints the result, 2, on the screen.
1 + 1

## [1] 2
This interaction within the console is one of the key features of R. R is what
computer scientists call a “scripting” language. This means that, when a
command is passed to R, it is evaluated immediately. In contrast, “compiled”
languages, like C or C++, are ones where there is an intermediate step
between writing the command and running the command. The code is compiled
into native machine language before being run. While programs in compiled
languages tend to run faster, the advantage of scripting languages is that they
are usually easier to learn and allow for closer interaction in the context of
data analysis. Moreover, as computers have become more powerful, the speed
advantages of compiled languages (except for very intensive tasks) has tended
to dissipate.2
1 Note that you can either include or omit spaces between values. While the command will

run either way, we recommend spaces between values in a function call to allow for easier
reading of the code. E.g., 1 + 1 is cleaner and easier to read than 1+1; this will become
clearer as functions and commands get more complicated later in the book.
2 Note that recent efforts have been made to combine the efficiency and speed of scripting

and compiled languages. For example, there are R packages that will allow you to interact
with C++, Java, Python and other languages and tools. Indeed, many of the functions in
base R are actually written in C!
Scripting with R 15

Another feature of R that many users notice immediately is the ubiquity of


parentheses. R uses parentheses to show where commands begin and end. A
common problem users will experience is forgetting to close the parentheses on
a command. If you do this, the > on the left will turn into a +, indicating that
R is expecting more from the command. It will not return to the > until you
have finished the command you are on. To demonstrate this to yourself, try
typing (1 + 1, without closing the parentheses. Then, hit Enter/Return as
many times as you would like. You will notice it will not give you the answer
until you close the parentheses.
(1 + 1

## [1] 2
On the right-hand side of our screen when you first open RStudio, you will
see two windows. On the upper-right-hand side, you will see a series of tabs,
labeled “Environment”, “History”, “Connections”, and (sometimes) “Build.”
We will only be using two of those tabs in this book. The Environment tab
shows all the objects you have stored in memory for use in your R session. So,
for example, if you load a data set, you will see it show up in the Environment
tab. The History tab records all the commands you have made recently. If you
ever want to enter one of these commands into the Console, you can simply
double-click on it.
On the lower-right-hand side, you will see five tabs. The “Files” tab shows
all the files in your working directory. You can use this interactively to see
what you have in your working directory, as well as any other areas of your file
system. The “Plots” tab will show you any graphs that you make, and allow you
to export them for use in your publications. We will use this extensively in our
chapter on producing plots. The “Packages” tab shows you all the packages you
have installed, and will check any that you have loaded into your environment
(more on this below). The “Help” tab can be used whenever you call for the
R documentation on a function. For example, if you type help("cor") or
?cor, it will show you the R documentation for the cor() function (which,
as you might guess, calculates the correlation between variables). The Viewer
tab is for viewing local web content. We will be using this when we design
three-dimensional plots later in the book.
Once you have opened RStudio, you can open the script containing your code
for an analysis by either selecting File » Open File in the dropdown menus, or
by clicking on the folder icon. You can create a new script by selecting “File”
» “New File” » “R Script” from the dropdown menu or by clicking on the
blank page icon and choosing R Script. You will also notice that beside the
16 Foundations

option to open a new R Script, it says “Ctrl+Shift+N.” This is a keyboard


shortcut. It means that if you want to open a new R script, you can do so by
holding down the Ctrl key, the Shift key, and the N key at the same time (your
keyboard shortcuts might be different, depending on the operating system you
are using).
When you open an existing script or create a new one, a new box will appear
above the console with the script. If you open more than one script at a time,
you will see that it creates new tabs for each additional script.
We have provided scripts containing all the code from this book on the
companion website.
Once you open a script with R commands in it, you will want to send those
commands to the R console to run. You can do this either by clicking the Run
button in the upper-left-hand corner of your script or by using the keyboard
shortcut Ctrl+Enter (this may be different on your operating system; hover
over the “Run” button to see how it is labeled on your system).
By default, RStudio will run only the line where the cursor is located. If you
wish to run more than one line, you can highlight all the lines you wish to run.
Take some time to explore RStudio before you proceed to make sure you are
comfortable with its operation. A more detailed version of the instructions
above, with illustrations, is available on the companion website.

Exercises
2.1.0.0.1 Easy
• Practice interacting with the console. What happens when you type
"Hello World" into the console and press Enter? What happens when
you type 3492 / 12 and press Enter?
• Open a new blank script in three ways: by going to File » New File » R
Script, using the “Ctrl+Shift+N” keyboard shortcut, and clicking on the
new script icon. In one of these scripts, type the commands from questions
1 and 2. Run them from the script file.
• To paste (“concatenate”) together more than one string, you can use the
paste() function. Try this. Type in paste("Hello", "World!"). What
happens when you put in a number, like paste("Hole in", 1, "!")?

2.1.0.0.2 Intermediate
• What happens when you type the following command into the command
line, round(sqrt(122.563ˆ2, 2)? How would you correct this?
• What error message do you get when you type in "two" + 2 (be sure to
include the quotation marks)? What do you think this means?
Understanding R 17

• In problem #3 above you might have noticed that paste("Hole in", 1,


"!") produced a sentence with a space between the “1” and the “!”. Why
do you think this happened?

2.1.0.0.3 Advanced
• Previewing what we will see below, type "two" * 2 into the console. What
error message do you receive? What do you think this means? Feel free to
look up the error message online to help.
• We will not discuss all the possible mathematical operators for R in
this book, but there are a number of additional operators about which
you might be interested. What do **, %%, and %/% do? You can look for
information online.

2.2 Understanding R
The foundations of R are pretty simple, but are often a stumbling block for
new users. Two general rules that we will often return to are:

1. Everything in R is an object.
2. Anything that does something is a function.

2.2.1 Objects
Just like objects in the real world, objects in R have “attributes.” For example,
the number 1 and the string “one” are both objects in R, but they have
different attributes. These attributes determine what you can do with them.
For example, adding two numbers makes sense, so running 1 + 1 in the R
console will produce an outcome. Adding two strings does not make sense, so
running "one" + "one" in the R console will return an error message.3
We will often use the class() function to get some information about the
objects. For example, if you run class(1) in the console, it will return numeric.
Alternatively, if you run class("1"), it will return that it is a character.
class(1)

## [1] "numeric"
3 Some programming languages, like Python, will allow you to use mathematical operators

with non-numeric values. For example, in Python, "one" + "one" would produce “oneone”
(the same outcome as paste("one", "one") in R) or "one" * 3 would produce “oneoneone”
(the same as rep("one", 3) in R).
18 Foundations

class("1")

## [1] "character"
There are times when we will simply want the objects printed in the console,
and other times when we will want to save those objects for later use. To save
an object to memory in your R session, you can use assignment operators,
which are either <- or =. When you do this, it will appear in the Environment
tab in the upper-right-hand corner of RStudio. The <- and = are synonymous,
but most R users, by convention, use <- for object assignment.4 In RStudio,
you can also use the keyboard shortcut “Alt + -” to create <- (“Option + -”
in Mac OS).
So, in the example that follows, the first line will simply print the results of 1
+ 1 to the console. The second saves the object to memory and calls it two.
To print this in the console, we simply run two in the console and it prints the
object on the screen.
1 + 1

## [1] 2
two <- 1 + 1
two

## [1] 2
R is what is called a strongly typed language. This means that capitalization
and punctuation are important. The object Two is not the same as the object
two. Getting an error returned saying that an object does not exist is often
due to spelling or capitalization mistakes. Here is a quick example.
two <- 2
Two <- 2.2
two

## [1] 2
Two

## [1] 2.2
two == Two

## [1] FALSE
4 The original computers used by Bell Labs in creating R had a single key that produced

this assignment operator. Most users still prefer it today both for style reasons and because
of some rare situations where the = may demonstrate unexpected behavior.
Understanding R 19

2.2.2 Functions
Functions in R work the same way as the functions you learned about in
elementary school math. They take an object, do something to it, and return
another object. Functions in R are usually denoted by their use of parentheses.
As we mentioned, everything that does something in R is a function, making
R a “functional programming language.”
As you might have guessed from the last paragraph, you have already learned
a function in this book. The class() function takes an object as its input and
returns the name of the class of the object as a character string.
The inputs into a function are called “arguments.” And running the function
is called a “function call.” Some functions take a single argument and return a
single object. Other functions can take on many arguments, and can return
many objects. Some functions will have “default” arguments and behavior,
so you do not need to type every input. For example, if you type help()
into the console (with no argument), the Help tab in the lower-right side
of RStudio will bring up the documentation for the help() function. If you
type help("lm"), you have passed an argument to it (labeled “topic” in the
help() documentation) asking for the help documentation on fitting a linear
regression model (lm), and returns this documentation instead of the default.
So, you might be wondering how functions fit within the rule that everything
is an object in R. . .
Functions are also objects.
For example, if we look at the class of the help() function, we will see that it re­
turns an object class – in this case it is a special class help_files_with_topic.

2.2.3 Commenting with #


Comments are invaluable when working in R. Comments allow for a variety
of tasks including saving some code for later, altering a chunk in the script
editor, or including notes to yourself to reference in future runs of code in an
R script.
To include a comment or to “comment-out” a chunk of code, simply place
# before the text or code to be commented which equates to not running
whatever may follow the #.
For example, suppose you wanted to use the Pythagorean Theorem (a2 + b2 =
c2 ) to solve for the hypotenuse, c, of a triangle. To solve for c, you√take the
square root of the sum of the other two sides of the triangle, c = a2 + b2 .
You could build a function to solve for this based on any two values supplied
for sides a and b by starting with the following:
20 Foundations

solve_for_c <- function(a, b){


sqrt(a^2 + b^2)
}

Though this function technically does the job, suppose you wanted to follow
best practices of function-writing, and wanted to make this function defensive.5
To do so, you might be interested in testing out various warning messages
based on a mistake on the part of the user. So you might update the function
to be:
solve_for_c <- function(a, b){
sqrt(a^2 + b^2)
if (!is.numeric(a)) {
stop('"a" must be numeric\n',
'You have provided an object of class: ', class(a)[1])
}
}

This warning would let the user know 1) whether a non-numeric value was
supplied to the function, and 2) the class of the object(s) supplied. Though
these ideas and terms are covered in depth later in the book, the point here is
that you could use the # to comment-out the warning message and redefine
the function to test it in real-time, e.g.,
solve_for_c <- function(a, b){
sqrt(a^2 + b^2)
#if (!is.numeric(a)) {
# stop('"a" must be numeric\n',
# 'You have provided an object of class: ', class(a)[1])
#}
}

When you call your function solve_for_c() with the warning commented
out, the call will ignore all of the code following each # and simply run the
calculation included at the outset in the simplest version of the function.
A few things to note when using the #. First, when commenting multiple
lines, you must include the # before each line; otherwise, calling the function
will throw an error. Second, especially in larger chunks of code, be sure that
only the parts you intend to comment-out are indeed commented out. The
most common error in this regard is commenting out a chunk of code as
in the example above, but forgetting to also comment out the closing } on
the penultimate line of the function. Here again, failing to do so and then
attempting to call the function will throw an error. And finally, we recommend
5 Note: we cover defensive programming in the context of user-defined functions in the

Essential Programming chapter.


Working Directories 21

liberal use of comments, especially when writing large chunks of code or writing
code in real-time (e.g., during class or a lab session). Comments in this context
are exceedingly valuable for annotating complex code that you may forget
when you return to the script. You will see us including comments in code
throughout this book.

Exercises
2.2.3.0.1 Easy
• In the previous exercises we used the paste() function to paste (con­
catenate) words and symbols together. You may have noticed that it
automatically added a space between the items we are pasting together.
For example paste("Hole in", 1, "!") places a space between “1” and
“!”. Type in ?paste().
– Reading the help, what argument sets this?
– What is its default?
– How can you eliminate the space (or add something different)?

2.2.3.0.2 Intermediate
• Technically, in question 9, there are two ways to eliminate the space
between words. What is the other way to do this?

2.2.3.0.3 Advanced
• In this section, we said that functions are usually denoted by parentheses,
but you have seen symbols that do things without parentheses. Specifically
mathematical operators, like +, -, /, and *. Type ?'+' into the console.
What does it tell you about these operators?
• Try typing '+'(1, 1) into the console. What does it produce? How does
it show that these operators are, in fact, similar to other functions?

2.3 Working Directories


One of the first obstacles new users of R often face is understanding and setting
a “working directory.” The working directory is the place on your computer
from which you want R to work. Setting a working directory ensures you know
from where you are navigating to find files and to where the objects you want
to save are being placed.
Whenever R is opened, a working directory is automatically assigned. To see
where this is, users simply need to run the function getwd(), with no argument
in the parentheses. This will return a single line in the output console with a
22 Foundations

file path for the location of the currently assigned working directory. If users
are happy with this location, no further action is needed.
But if you want to change this, then they need a slightly different
command, setwd(), with the name of the new file path included in
quotation marks in the parentheses. For example, typing the following,
setwd("/Users/username/Desktop"), will set the working directory to be on
the desktop of a Macintosh computer for user, username. For Windows users,
the command will take the form setwd("C:/Users/username/Desktop/").
While we recommend users become familiar with their file system and set
their working directory by command, those who are less familiar with their
computer’s file system may also set their working directory using an interactive
browser. This can be accessed through the dropdown menu by going to Session
» Set Working Directory » Choose Directory (or using the “Ctrl+Shift+H”
keyboard shortcut). In the examples in the following chapters, we will use the
command setwd(choose.dir()), which also allows the user to interactively
set the working directory if using Windows or Mac OSX, but we strongly
recommend you become used to setting your working directory using one of
the other methods, or that you start using R projects, which are explained in
the next section.

2.4 Setting Up an R Project


In the previous section, we explained how to set up your working directory
using the setwd() command. While setting working directories is a funda­
mental part of many computer programs, doing so often causes unnecessary
problems. Effectively using the command requires that you understand how
your directories are organized on your computer, and this tends to vary by
whether your operating system is Windows, Linux, or OSX. For example, in
the last section, we showed how to set the working directory to the Desktop
folder on a Mac using the command setwd("/Users/username/Desktop").
But, for a Windows user, this command will not work, and will gen­
erate an error, Error in setwd("/Users/username/Desktop") : cannot
change working directory. This is because Windows starts in a different
area of the computer – the C drive. To do the same in Windows, the command
becomes setwd("C:/Users/username/Desktop").
If you use more than one computer for your work, this can also cause issues.
If, for example, your computer at work has the username rkennedy, but your
laptop has the username Ryan, you will have to change your directory every
time you try to use your code.
Setting Up an R Project 23

Things get a lot worse when you start working with other people. Their
directories are likely to be structured differently than yours, meaning that
they cannot just run your code – they must find where you make reference to
a directory and change it. This can get so annoying that one Twitter post to
the #rstats discussion thread threatened to set a user’s computer on fire if
their code included the setwd() command.6
While threatening to set someone’s computer on fire may be a little extreme,
the reality is that including information that will only work on your computer
is inconvenient for you (at least if you ever plan on doing work on a different
computer) and discourteous to anyone with whom you work.
Luckily, there is another way to do things. In RStudio, you can set up a
“project.” The project stores information needed to run your code and find
your files, without you always having to tell it where to look. It also makes
sure that those with whom you are working do not revolt when working with
your code.
To create a project, just go to the Project menu in the upper-right-hand corner
of RStudio, and select New Project. Once you have done this, you will be
asked if you would like to create the project in a new directory or an existing
directory. If you already have a folder containing your data, you might choose
an existing folder. If you are starting from scratch, or simply want a new folder
with which to do your work, choose a new directory. Locate the area into which
you want to put your project, and, if it is a new directory, give it a name. For
step-by-step instructions with illustrations, you can go to the book’s support
website.
RStudio will create a new file with a .Rproj extension. Whenever you open
this file, either by double-clicking on it or navigating to it using the Project
menu, it will automatically set your working directory to the location of the
.Rproj file. If you copy the folder to a new computer - no problem, all your
code will still work. If you work with a co-author through Dropbox or another
shared system - no problem, they can simply open the .Rproj folder and it
will work. (Note: If using Dropbox, you may want to pause syncing while you
are working on a project to avoid error messages.)
In subsequent chapters, we will use the setwd(choose.dir()) command to set
the working directory so that each chapter is self-contained, but in some of the
online scripts we provide examples of .Rproj files as well, and we recommend
you get used to using and creating these.
6 https://www.tidyverse.org/articles/2017/12/workflow-vs-script/
24 Foundations

2.5 Loading and Using Packages and Libraries


Packages are a fundamental part of R. Packages contain many useful libraries
of functions that you will need for your work in R. In 2017, the Comprehensive
R Archive Network (CRAN) surpassed the 10,000 packages mark and it is still
growing. R users worldwide find solutions to the data and analysis challenges
they face, and they share these solutions on CRAN, GitHub, Zenodo, and
other sites.
This aspect of working in R is incredibly valuable for a couple of reasons. First,
for almost any task you can think of, someone has likely written a package
to make your life easier. This is one of the main advantages to R being open
source. Some of these packages you will use all the time – indeed, they may
become a default heading on your code. Others you may just use for one
project.
R often has capabilities years before other statistical programs. In fact, a
common reason why people learn R is that they find out that a particular
task has already been developed as a package in R, while it has not been
implemented in the statistical package they usually use.
Second, the use of packages means that you only have to install what you need
for your current project. This can seem a little odd for those used to working
in other statistical programs that automatically load everything the program
can do every time it is opened. The reality is that R simply has too much that
it can do to load everything every time (remember, there are more than 10,000
packages available, containing millions of functions). By only loading what
you need, you ensure that your projects are only using the resources that you
actually need.

2.5.1 Installing Packages


To access packages, users must first install the package, and then
load the library to be able to use the functions stored within the
package source files. The basic function for installing any package is
install.packages("PACKAGE_NAME").
For example, to install all of the Tidyverse packages that are used throughout
this book, users would install the tidyverse package (yes, that includes many
packages in a package):
install.packages("tidyverse")

RStudio provides an additional way to do this. In the lower-right hand window,


in the “Packages” tab, you can click the “Install” button. Once you have done
Loading and Using Packages and Libraries 25

this, you can type in the packages you want and click “Install” to install them.
This can be useful because RStudio will list the packages that match your
search as you type, avoiding common errors in spelling or capitalization.
Once you have installed a package, it is on your computer and you do not need
to install it again when you restart R or start a new project, though you may
need to reinstall packages when you update your R and/or RStudio versions.

2.5.2 Loading Packages


Once you have the package installed, you need to load the library of func­
tions into your workspace using the command library(PACKAGE_NAME). Note
the quotation marks in the install.packages() command, but the lack of
quotation marks in the library() command. You will run up against error
messages if you reverse these.
Here is an example of how to load the tidyverse package, now that it is
installed (per the above line):
library(tidyverse)

To use a package, you will need to load it using the library() function every
time you restart R or start a new project.7
Now that you know the general use of packages and libraries, we will provide
an overview of some of the main packages we will use throughout the book.

2.5.3 The here Package


An example of a very simple package we will be using throughout the book is the
here package. When you are navigating through your file system, it is usually
done using a string like Users/username/Desktop. These can sometimes get
very long and annoying to type, especially if the file we are looking for is deep
in our file system.
The here package is incredibly simple, but also incredibly powerful, especially
when combined with an R project. After installing the package, you can load
it into the workspace using library(here), and you will see it print out a
message that reads, here() starts at <DIRECTORY>, where the directory is
the current working directory.
library(here)

The here package allows you to use the here() function to create a string
with the information you need to point R to a particular file. For example, if
7 Note: alternatively, you can save libraries to your R profile, but we do not recommend

doing this because your needs will likely change over time.
26 Foundations

we have set our working directory to the desktop and we want R to access
the dataset.csv file in the Data folder on the desktop, would simply use
here("Data", "dataset.csv"). As you can see in the code block that follows,
this simply outputs a string with that location.
here("Data", "dataset.csv")

## [1] "/Users/waggoner/Dropbox/.../Data/dataset.csv

Whenever we use a function to load our data, we can place this here() call
into the function to load the data.
read_csv(here("Data", "dataset.csv"))

The beauty of the here() function is that if we use a different computer,


with a different file structure, we can use the same exact command on both
computers. This is very nice when you are working on multiple computers or
with collaborators on a project. We will be using it in this book so that the
code we provide will work on your computer without modification.

2.5.4 The tidyverse Package


Another package we will be using regularly in this book is the tidyverse
package. As noted above, the Tidyverse is actually a set of packages that share
a common philosophy and grammar. This includes the ggplot2 package for
creating graphics (used extensively in the Visualization chapter), the tibble
package for producing a tibble data structure that has some useful properties
compared to R’s default data.frames, the dplyr package that allows for quick
and readable data manipulation, the tidyr package to reshape your data into
a “tidy” format that is useful for analysis, the readr package for quickly
parsing a range of “rectangular” data structures that are common in the social
sciences (these four packages are introduced and used extensively in the Data
Management chapter), and the purrr package for functional programming
that makes some repetitive tasks much simpler.
You could install and load all of these packages individually, but since these
packages are commonly used together, they have been bundled in a single
tidyverse package to make it easier to load.
While we strongly advocate the Tidyverse approach to programming and
working in R, it is still useful to understand some parts of base R. You can do
just about any basic data analysis task in the Tidyverse, but there may be
some situations that require you to program in base R, you may see an example
that uses base R, or you may encounter a package you want to use that follows
base R conventions. Thus, we will introduce some base R throughout the book.
Loading and Using Packages and Libraries 27

2.5.5 Overlapping Functions


In some cases, different packages will use the same name to do different things.
For example, in the next chapter, we will be using the dplyr package that is
included in the tidyverse, and we will be making use of one of its component
functions, select(), which selects named columns from a data set.
Perhaps unsurprisingly, there are other packages that also have select()
functions. One of them is the MASS package and another is the skimr package.
If you load all of these packages and try using the select() function from
dplyr, the system will not know which one to use. If this occurs (usually
indicated by an “unused argument” error), you need to specify which package’s
function you want to use, separating the package and function name with ::.
For example, by running dplyr::select(), you are stating "use the select()
function from (::) the dplyr package.

2.5.6 Other Packages Used in This Book


There are a number of other packages we will be using in this book. Here is a
list of all of them, along with a short explanation of what they do.
here is a package that allows you to interactively search your working directory.
For example, if you want to navigate to the “Data” folder in your working
directory and find the “raw_data.csv” file, you would use here("Data",
"raw_data.csv").
readxl is a package for opening Excel spreadsheets (.xls or .xlsx) in R.
haven has functions for opening Stata (.dta), SPSS (.sav), and SAS (.sas7bdat)
data.
stargazer is a package for producing professional tables that can be imported
into other common word processing software like Microsoft Word or LaTeX.
forcats is a package that provides a set of functions for handling “factor”
variables.
corrr provides functions for analyzing the correlation between variables that
is more detailed and intuitive than base R’s traditional cor() function.
janitor is a package to make nice-looking cross-tabulations, with many options
for customization and calculation.
purrr is a Tidyverse package housing, among many other useful functional
programming tools, the map family of functions covered in the Essential
Programming chapter. Mapping functions are important Tidyverse innovations,
allowing social scientists a streamlined bypass of for loops and the base R
apply family of functions.
28 Foundations

amerika supplies a color scheme that mimics traditional colors for graphics
about American politics (i.e., red for Republicans and blue for Democrats)
(Waggoner, 2019).
arm is a compilation of many useful packages for analysis associated with
Andrew Gelman and Jennifer Hill’s popular book, “Data Analysis Using
Regression and Multilevel/Hierarchical Models” (Gelman and Hill, 2006).
faraway is a compilation of data sets and functions from Julian Faraway’s
book, Extending the Linear Model with R: Generalized Linear, Mixed Effects
and Nonparametric Regression Models (Faraway, 2016).
MASS is a compilation of data sets and functions from Bill Venables and Brian
Ripley’s book, Modern Applied Statistics with S-PLUS (Venables and Ripley,
2013).
OOmisc contains a set of useful miscellaneous functions produced by Ozgur
Asar and Ozlem Ilk.
pROC is a package of functions to produce and analyze receiver operating
characteristic (ROC) curves.
lmtest is a package of functions for analyzing regression models, including
likelihood-ratio tests.
rstatix is a package for evaluating basic statistical functions such as t-tests.
car provides functions utilized in John Fox and Sanford Weisberg’s book, An
R Companion to Applied Regression (Fox and Weisberg, 2018).
plotly is a powerful package for advanced plotting, including interactive plots.
broom is a Tidyverse-complementary package for inspection of model objects,
which is much more thorough than the summary() function in base R.
patchwork is a Tidyverse-complementary package for placing ggplot objects
in a single pane with minimal code.
performance is a package from the easystats software group that includes a
host of performance checks for regression models.
see is a Tidyverse-complementary visualization package from the easystats
software group that complements ggplot2, and also allows for plotting objects
created using the performance package.
You can install all of the packages needed for this book by running the following
code chunk in your console. Alternatively, you can click on the “Packages”
tab in the lower-right-hand corner of RStudio, click “Install,” type in all the
packages you want (separated with a comma or space), and click “Install.”
install.packages(c("tidyverse", "here", "readxl", "haven",
"janitor", "stargazer", "forcats", "skimr",
Where to Get Help 29

"corrr", "amerika", "purrr", "arm",


"faraway", "MASS", "OOmisc", "pROC",
"lmtest", "car", "rstatix", "plotly",
"broom", "patchwork", "performance", "see")
)

Exercises
2.5.6.0.1 Easy
• Try installing and loading the arm package from Gelman and Hill’s book
(Gelman and Hill, 2006). Make sure you understand this process.
• Install the other packages needed for this book. Try loading tidyverse
and here.

2.5.6.0.2 Intermediate
• You may have noticed that we used the c() function to create a vector of
packages we wanted to install. Run ?c(). What does this tell you about
the c() function? What happens when you type c(1, 2, 3) into the
console? Why?
• Set up an R project called “R Code” somewhere on your system. You can
either create the folder and then create the project, or you can create the
folder by creating a project. What happens when you open the project?
Now create subfolders in the project location for “Data” and “Code”. Use
the here() function to create a string that indicates these subfolders.

2.5.6.0.3 Advanced
• Some even newer packages are available on GitHub, a repository for
programs and packages that is open to anyone. How would you install a
package from GitHub? Try installing the package fliptime, which might
be useful for those of you working with data with calendar dates, from
the GitHub address "Displayr/flipTime".

2.6 Where to Get Help


We all need help every now and again. Even after more than a two and a half
combined decades of using R between the authors, we still often seek help
with how to do some tasks. The reason is not so much that R is difficult to
use, but rather that, when you try to do something new in any system, you
will run into unfamiliar challenges. Even Hadley Wickham, the designer of the
Tidyverse, is there with you (Waggoner, 2018a). . .
Exploring the Variety of Random
Documents with Different Content
mängd eleganta, andäktiga åhörare, hvilkas närvara skulle gifva
konserten anseende och hvilkas intresse, sedan det en gång blifvit
väkt, i framtiden kunde bli af väsentlig nytta för Valérie. Sedan
utgifterna sålunda voro betäkta måste beloppet för de öfriga
biljetterna utgöra ett rent öfverskott för de båda systrarna.

Det föll honom aldrig in, att det kunde bli någon svårighet att fylla
de platser, han så ädelmodigt köpt. Alla människor tykte mera eller
mindre om musik, alla människor voro intresserade af det, som var
nytt, och sir John viste, att alla hans bekanta tykte om honom; han
var därför öfvertygad om, att hans vänner och bekanta mangrant
skulle infinna sig, då han skickade dem fribiljetter till konserten, i
synnerhet som de för närvarande icke voro synnerligen upptagna af
sällskapliga plikter.

Han blef emellertid genast en smula afkyld af hållningen hos den


första person, han vände sig till. Det var ett fruntimmer, hvilket han
alltid ansett för sin särskilda beskyddarinna, ty han dinerade fyra,
fem gånger under säsongen i hennes hus och hon bjöd honom på
alla baler hon gaf och skickade honom kort åt hans vänner. Till tack
därför dansade han med hennes döttrar, då han infann sig vid dylika
lustbarheter, eller skref små, artiga biljetter, ifall han föredrog att gå
någon annorstädes. Alt detta hade förskaffat honom rykte att vara
en uppmärksam ung man, som i vissa afseenden blifvit en smula
efter sin tid.

Då han därför antydde för fru Marjoribanks, att han skulle skicka
henne några biljetter till fröken Kostolitz' konsert, gjorde han det
snarare med minen hos en person, som beviljar en ynnest, än hos
en, som begär en dylik. Men fru Marjoribanks rätade på sig på ett
sätt, som alldeles bragte honom ur konceptena.
— Fröken Kostolitz, upprepade hon stelt. Får jag fråga hvem
fröken
Kostolitz är?

— Den nyaste stjärnan, genmälde sir John, blott att ingen ännu
hört henne. Men, om jag inte misstager mig, kommer hon att bli så
mycket ryktbarare efter denna konsert.

Älsta fröken Marjoribanks såg på sin mor; den andra såg på sir
John och såg sedan bort. Han började känna sig otreflig till mods.
Fru Marjoribanks lutade sig ännu mera tillbaka i sin stol och
betraktade honom en stund undan sina sänkta ögonlock. Sedan
frågade hon helt lugnt:

— Och huru har ni varit i tillfälle att höra henne, sir John?

— Jag blef i somras bekant med henne på Brackenhurst, svarade


han och blef ond på sig själf, emedan han kände, att han rodnade.

Fru Marjoribanks utbytte en blick med sin älsta dotter.

— Jag trodde just, att det skulle vara hon, sade hon lugnt och
vände sig åter till honom. Ni träffar henne tämligen ofta, icke sant?

— Hennes syster gifver mig sånglektioner, svarade Croft nästan


skarpt.

— Sånglektioner! utropade fru Marjoribanks och satte sig till rätta i


stolen; sedan började hon skratta; och hennes döttrar instämde i
hennes munterhet.

— Nej, så komiskt! sade de.


— När man tänker på, att ni dolt er talang för oss under alla de
långa år vi varit bekanta med er, utropade den ena.

— Man lär sig så länge man lefver, som ni ser, svarade Croft lugnt;
hittils har jag varit den lilla fågeln, som kunde sjunga, men ej ville
det.

— Och nu får mademoiselle — hvad var det hon hette — Karlowitz


— er att sjunga, icke sant? blandade modern sig tämligen bittert i
samtalet.

— Jag hoppas, att hon med tiden skall lära mig det, svarade sir
John. När man vid mina år börjar gå i skolan, kan man ej i en
handvändning bli fullkomlig. Nu skall jag skicka er biljetterna och om
några af edra bekanta skulle ha lust att gå dit, så kan jag stå till
tjänst med flere.

— Du milde himmel! sade fru Marjoribanks och såg mycket


förvånad ut, medan den yngsta fröken, som var känd för sin
näbbighet, yttrade, att sir John tyktes ha företaget om hand.

— De unga damerna äro så litet kända i London, svarade han


allvarsamt.
Därför ansåg jag mig böra hjälpa dem med att placera några
biljetter.

— Jag förstod, sade fru Marjoribanks långsamt och impertinent,


att vi skulle få dessa biljetter till skänks. Får jag fråga om det är er
eller fröken Karlowitz vi ha att tacka därför?

— Då jag skänker mina vänner någonting, hyser jag för det mesta
den åsikten, att de äro mig tack skyldiga därför, svarade sir John
med bibehållet lugn, ehuru han började bli ond.

— Så ädelmodigt af er! Och ni gör icke blott mig utan också mina
vänner detta anbud! Ni tyckes ha ett oinskränkt antal biljetter till ert
förfogande.

— Les amis de nos amis sont nos amis, svarade Croft skämtsamt.
Saken är den, att jag önskade, att de rätta personerna skulle komma
på denna konsert, då det är den första — ty ni vet ju, att så mycket
beror på en god början. Om ni nu värkligen vill vara snäll, fru
Marjoribanks, så öfvertalar ni några af edra vänner att gå dit.

— Jag tackar för den förblommerade komplimenten. Men det är


bra kallt för att nu gå på konserter. Kommer er Mademoiselle — hvad
hon nu heter — att ha någon till biträde — jag menar någon annan
konstnär?

— Mademoiselle Kostolitz ackompagneras af sin syster, som är en


utmärkt pianist.

Flickorna fnissade åter halfhögt.

— Sir John har börjat märkvärdigt väl förstå sig på musik, sade en
af dem.

— Jag tycker, sade fru Marjoribanks, att det är för kallt att gå på
konserter och dessutom kan ett violinföredrag bli mycket tröttande,
ifall den spelande ej är en artist af allra — allra första rangen. Nej,
jag tackar, sir John, jag tror, att jag afstår från biljetterna; om jag
tog emot dem skulle jag troligtvis icke använda dem och då blefve ni
förargad. Det är bättre att vara uppriktig, icke sant?
Croft stannade kvar några ögonblick och talade om likgiltiga saker,
för att hans förstämning ej skulle vara alt för märkbar, och sedan tog
han afsked och gick.

Samma eftermiddag stötte sir John på en liflig, ung man bland


sina vänner, som brukade skrifva artiklar till societetstidningarna, och
då föll det honom in, att det kunde vara en stor vinst för de unga
artisterna, om han tillförsäkrade sig denna mans älskvärda bistånd.
Men innan han hunnit komma fram med ett ord, frågade den unge
journalisten honom ifrigt, huru det kom sig, att han var kvar i
London.

— Ni ämnade ju resa till Paris.

— Till Paris? upprepade Croft. Han hade alldeles glömt den


tillärnade trippen till Paris, hvilken mötet med Margot så plötsligt
gjort slut på.

— Javisst!

— Ack ja, drog sir John sig till minnes. Jag ämnade fara, men —

— Jaså, jaså, svarade vännen och betraktade honom nyfiket.

— Hör ni, sade Croft hastigt, ni kunde just göra mig en tjänst. Ett
par damer, som jag är bekant med, gifva nästa vecka en konsert. Ni
har måhända redan läst annonserna — mademoiselle Kostolitz'
konsert i Steinwaysalen. Vill ni inte med litet trumpetstötar förkunna
saken i edra olika tidningar och om ni sedan gick dit och skref litet
om saken vore det ännu bättre.

— Hm, sade den unge journalisten åter. Hvem är mademoiselle


Kostolitz?
Ny import?

— Hon har redan en tid vistats i England, men det är första


gången hon uppträder offentligt. Hon är helt ung, nysa fylda aderton
år — och en mycket vacker, fängslande varelse. Ni kommer att få en
njutning, om ni går dit.

Han hade en förnimmelse af, att han handlade ohederligt mot


Margots syster att med en främling tala om henne på detta sätt,
men han var mycket angelägen om att "vinna prässen."

— Ni får naturligtvis fribiljetter, sade han.

— Jag tackar, svarade den andra, som kände sig helt road af
saken. Jag skall infinna mig, ifall jag ej är upptagen på annat håll.
Hon är en väninna till er?

— Nej, egentligen blott en bekant, hennes syster ger mig


sånglektioner. De båda damerna ha så få bekanta och därför
intresserar jag mig för dem, försöker bispringa dem.

— Ja, ja, skrattade journalisten på ett besynnerligt satt, hvilket


syntes Sir John fullkomligt oberättigadt. Jag skall stöta i trumpeten
och komma dit, så framt jag kan.

Croft återvände till sin bostad; han kände sig missmodig och
nedslagen. Han skulle få mycket mera besvär med dessa biljetter än
han någonsin kunnat tro; han beslöt att icke mera personligen
erbjuda dem åt någon. Han skref därför på aftonen flere bref och
erbjöd dem alldeles i förbigående åt sina vänner, i det han
omnämde, att han kände den unga konstnärinnan och att det skulle
fägna honom, om man behedrade konserten med sitt besök.
Men han blef endast utsatt för nya missräkningar. Somliga af
brefven besvarades icke alls och de som mottagit de andra tyktes
icke vara belåtna. Somliga skickade biljetterna tillbaka; andra voro
icke säkra på, huruvida de skulle kunna gå; ingen människa tyktes
fägna sig eller vara vänligt stämd. Sir John kunde icke förstå det.
Han beslöt att gå till den dam, i hvars salong Valérie en gång spelat;
hon viste åtminstone hvad Valérie presterade och hon skulle kunna
hjälpa honom, Han måste ha gått dumt tillväga, eftersom alla hans
försök misslyckades. Samma morgon han fattat detta beslut fick han
ett bref från lady Mary Bracken, i hvilket hon underrättade honom
om, att hon var i staden i och för affärsangelägenheter och att hon
enträget önskade få tala med honom om en viktig och brådskande
angelägenhet. "Det är väl någonting angående distriktssystern",
tänkte han otåligt, men han kände sig likväl glad. Han skulle värfva
sin tant för sina väninnors sak, ty han började småningom känna sig
allvarsamt orolig. Tänk om han ej lyckades placera biljetterna, och
Valérie, i stället för det utvalda sällskap, han hoppats omgifva henne
med, endast fann tomma bänkar, huru skulle det då gå? Margot
hade nyss alldeles förtjust talat med honom om, huru
förvånansvärdt bra biljetterna gingo åt.

— Kan ni tänka er, att vi redan sålt mera än vi behöfva för att
betala hyran för salen, hade hon sagt. Jag var först så orolig, icke
blott för pengarnas skull, utan emedan det är så viktigt för Valérie,
att denna hennes första konsert blir väl besökt; hon skulle bli
förfärligt nedslagen, om hon såg tomma bänkar framför sig.

Det gick en kall kåre öfver ryggen på sir John, då han tänkte på
dessa ord; huru skulle det gå, om han ej lyckades fylla dessa tomma
platser. Därför andades han lättare vid underrättelsen om lady Marys
Brackens ankomst.
Men först gjorde han likväl sitt besök hon den andra damen; han
väntade stor hjälp af henne. Hon var en klok och världsvan kvinna,
som viste, huru hon skulle taga människorna. Hon var dessutom
ofantligt omtykt och hon höll mycket af sir John, hvilken hon kände
från barnaåren.

Hon tog mycket hjärtligt emot honom, men då han kom fram med
sina önskningar, skrattade hon honom midt upp i ansiktet.

— Hvad för slag! utropade hon, den där evinnerliga Kostolitz?

— Hvad menar ni därmed? frågade sir John. Han stod med ryggen
åt kaminen och såg ned på henne med en förbittrad blick.

Hon smålog efterseende emot honom och gaf honom ett tecken
att slå sig ned på en stol bredvid henne.

— Tag plats, min bäste John, sade hon, jag ville gärna tala med er.
Ni är precis samme Don Quixote som i forna dagar, då ni brukade ge
min guvernant en uppsträckning, när hon enligt er åsikt var orättvis
emot mig. Ni menade så väl, ni stackars, snälle gosse, men efteråt
var hon blott så mycket elakare emot mig. Förstår ni den moral, jag
försöker hänsyfta på? Ni vill hjälpa dessa täcka, små konstnärinnor,
och ni skadar dem endast. Ni gör dem löjliga.

Croft svarade icke, men hans väninna hade alt blifvit skrämd öfver
uttrycket i hans ansikte, ifall hon sett på honom. Hon viste
emellertid, att hennes yttrande icke kunde vara angenämt för honom
och sysselsatte sig därför med att betrakta de broderade tåspetsarna
på sina näpna skor.
— Ni vet, fortfor hon i nästan smeksam ton, att ingen kan hålla sig
för skratt, när det blir fråga om er plötsliga musikentusiasm; ni har
aldrig förut velat påstå, att ni kunde skilja den ena noten från den
andra. Och jag tror ej att någon hört er röst, utom då ni deltagit i
jaktsånger. Och när ni nu vid trettiotvå års ålder börjar taga
sånglektioner, nät ni egnar er åt en ung, vacker konstnärinnas
intressen, gör er till hennes ciceron, snokar upp elever åt henne,
anhåller om inbjudningar för henne, och nu slutligen går från dörr till
dörr — som ett slags musikalisk handelsresande — och ber folk taga
emot konsertbiljetter — ja, vet ni, min käre John, så är detta en
smulförrykt! Jag kan försäkra er, att jag varit på minst sex ställen där
människorna talade därom. Ni har bedrifvit affären så gros, att
människorna ovillkorligt måste skratta åt er. Om det vore någon
annan än ni skulle hela världen finna saken misstänklig. Och jag tror
till och med, att många göra det nu. Men de som känna er lika bra
som jag — hon blinkade vänligt åt honom — de veta, att ni är en
hederlig, godhjärtad, samvetesgrann människa, och de skratta blott
och undra hvem denna flicka är, för hvars skull John Croft bär sig så
narraktigt åt? Hon kan icke vara någon så stor konstnärinna, annars
behöfde han ej göra så våldsamma ansträngningar för att trumma
ihop en publik åt henne. Människorna äro elaka, käre John, ty de
säga detta.

Hon såg skrattande upp till honom, men skrattet dog bort på
hennes läppar, då hon varseblef det smärtsamma allvaret i hans
anletsdrag. Han kom ihåg Margots ord, som hon yttrat vid två olika
tillfällen: "Ni gör oss till föremål för åtlöje", och sedan: "Världen är
en ovänlig ort, full af kritiserande andar."

— Ni är sårad? sade hans väninna.


— Nej; jag tänker endast på, att det egentligen är en jämmer. Man
kan hvarken visa en smula godhet eller välvilja utan att bli ansedd
endera för en skurk eller en narr. Och jag börjar värkligen själf att
tro, det jag varit en narr.

Han yttrade de sista orden med ett sådant uttryck af pojkaktig


ledsnad, att den vackra kvinnan vid hans sida genast påminde sig
lekkamraten från barnaåren. Hon lutade sig framåt och lade lätt sin
hand på hans.

— Se inte så bekymrad ut! sade hon, utan berätta uppriktigt hela


historien för mig. Är ni kär i Valérie Kostolitz?

— Kär i Valérie! — Han skrattade så muntert, att hans väninna


genast blef lugnad i det afseendet; men sedan återtog han sitt allvar
och aflade en uppriktig bekännelse angående sitt förhastade råd i
afseende å konserten och sin ännu mera förhastade plan att försöka
skydda dem mot förlust.

— Ja, det var värkligen en bra förrykt idé, sade hon skrattande.
Men oroa er inte för den skull; då de i alla fall få sina utgifter betäkta
och således icke lida någon förlust; är ju ingen olycka skedd. Om ni
vill placera edra pengar på det viset, så står det er ju fritt.

— Men jag önskar så innerligt, att detta vågstycke kröntes med


framgång, svarade Croft helt olycklig. De ha så mycket räknat därpå
och de komma att bli bittert besvikna, ifall salen ej är full.

— Ni kan omöjligt fylla den; det är inte värdt, att ni räknar därpå.
Jag skall göra hvad jag kan för att placera några af dessa olyckliga
biljetter, men jag kan inte lofva mycket. Då er väninnas rykte är
stadfäst, strömma åhörarna nog till; men, min käre John, jag kan
försäkra er, att ingen nu har lust att komma och jag kan ej tvinga
någon.

— Men de hörde henne likväl med största nöje här hos er, sade
han dystert.

— Ja, det var någonting helt annat. Om jag kunde få tag i några
af de värkligt musikaliska människor jag hade här den där aftonen,
så kunde jag måhända öfvertala dem; men de äro tunnsådda, skall
jag säga er. Hälften af alla de människor, som applådera så
stormande, veta lika mycket om musik som ni, käre John — skulle
jag ha sagt, innan jag fick höra talas om er förborgade talang.

Hon sade det med ett så förtrollande, illparigt leende, att han ej
kunde bli ond på henne; men han gick just icke mycket tröstad
därifrån.

Lady Mary utgjorde nu hans sista hopp. Han träffade henne i


biblioteket i hennes stora, trefliga hus vid Cadogan Place, ett rum,
hvilket nu såg alt annat än trefligt ut, då böckerna voro dolda af de
fördragna gardinerna och möblerna voro inhöljda i de öfverdrag, de
alltid brukade bära under egarinnans frånvara.

— Jag sade till, att tjänarna icke behöfde taga bort alt detta,
förklarade hon, ty jag stannar endast några dagar här i och för
affärsangelägenheter. Ja, min käre John, jag har lidit stora
missräkningar. Min "Mödra-uppfostrings-förening" har icke i något
afseende motsvarat mina förhoppningar!

Sir John slog sig ned i soffan bredvid henne och hans ansikte
antog ett för tillfället passande uttryck af bekymmer.
— Hvad säger du! Vilja mödrarna icke låta uppfostra sig? frågade
han.

— Jag vet inte huru det hänger ihop, svarade lady Mary alldeles
tröstlös, de tyckas icke mera vilja komma dit. Jag hade just inrättat
alt så trefligt, subskriptionerna voro endast formella och jag hade till
och med faststält, att alla de som önskade det kunde taga råvarorna
med sig och endast få undervisning i tillredningen. Men det tyckes
icke ha behagat dem. Och det värsta af alt är, att de, som
genomgått en kurs, icke ens använda det som de lärt sig. Jag
träffade nyligen fru Miggins just som hon serverade sin man det
afskyvärdaste kaffe — tjokt som gröt. Helt enkelt kokadt i panna och
serveradt med bottensatsen uti; och hon hade ändå lärt sig det så
bra — att klara det med ett ägg, då det ej finnes någon sil till hands.
Men det tjänar till ingenting att predika för dylika människor; hon
sade, att hon ej hade råd att använda något ägg och att herr
Miggins tykte, att kaffesatsen gjorde kaffet starkare.

John skrattade, men lady Mary satt mycket allvarsam. Hennes


mössa hade åkt ännu längre ned i nacken än vanligt och hon såg
riktigt nedslagen och bedröfvad ut.

— Här sitter jag nu med den stora byggnaden, fortfor hon. Jag har
en plan, den allra förträffligaste plan, om jag blott kunde realisera
den. Jag tänkte, att jag skulle grundlägga en "Lefnadshamn för
gamla, aktningsvärda, gifta fattiga." Det skär mig alltid i hjärtat, när
jag tänker på de stackars, gamla människorna, som måste komma in
på fattighuset, sedan de lefvat ordentligt och ärbart i femtio, sextio
år. Jag har alltid tykt det vara så grymt och orättvist, att de icke
skulle ha något hem mera. Tycker du inte detsamma, John?
Tårarna stodo henne i ögonen och man kunde icke tvifla på
hennes medlidande. Han instämde varmt och hon fortfor
entusiastiskt:

— Jag tänkte, att magistratspersonerna, då de fingo reda på något


riktigt ömmande fall, helt enkelt kunde skicka dessa människor till
mig. Och småningom kunde "Hamnen" kanske ega bestånd utan
understöd — de gamla gubbarne kunde kanske karda ull och
gummorna kunde sticka; men man måste först leda alt på rätt väg.
Ty, ser du, för ögonblicket har jag inga pengar till mitt förfogande.
Jag har till och med råkat i skuld för "Mödraföreningen" och därför
tänkte jag —

Hvilka lady Marys planer än voro, fick sir John ej höra dem i dag,
ty han gaf samtalet en ny vändning i det han plötsligt sade:

— Ämnar du återigen gifva någon konsert?

Uttrycket i hans tants ansikte förändrades ögonblickligen. Hon


grep energiskt tag i sin mössa, satte den stadigt på hufvudet och
tyktes bereda sig att taga ihop med affärsangelägenheter.

— John, sade hon allvarsamt, det påminner mig om, att jag måste
tala med dig. Det var därför jag skickade bud på dig. Det är mycket
viktigt. Jag är värkligen alldeles bestört. John, hvad har du gjort med
den lilla flolspelerskan?

— Jag har sökt förmå folk att taga biljetter till hennes konsert,
svarade han melankoliskt och biktade det bekymmer, som i denna
stund så tungt hvilade på hans själ.
— Och du far omkring i cab med henne likasom Nicholas Nickelby
och världsundret. Detta har alltid förefallit mig så löjligt. Kommer du
ihåg de blå benkläderna och det gröna parasollet? — Lady Mary
började skratta, så att näsan rynkades. Ja, ja, världsundret och
fröken Snevellici. Du milde himmel, så förrykt. Men allvarsamt, John,
jag tror inte det är rätt, att du gör någonting dylikt.

— Min bästa tant, svarade Croft leende, ehuru han var mycket
bedröfvad till sinnes, jag har en gång följt med fröken Kostolitz på
en konsert, emedan hennes syster icke kunde göra det. Jag försöker
nu henne ovetande prångla ut några biljetter åt henne, emedan de
äro fattiga och ej ha några bekanta. Hvarför kan jag slutligen och
sist ej få försöka att göra godt på mitt eget vis? Du hjälper mödrarna
i din by och de fattiga gubbarne och gummorna. Jag försöker
bispringa framåtsträfvande, unga konstnärinnor.

— Ja, det är visserligen sant! Men, min käre gosse, du vet, att
människorna icke komma att se det från den sidan. De tro att du är
— hm ja, folket i byn skulle säga, att du "går" med fröken Kostolitz,
och som du blifvit bekant med henne hemma hos mig känner jag
mig på sätt och vis ansvarig för saken och därför skickade jag bud
på dig. Det går inte an, nej, vet du, värkligen icke. Du kan icke
blanda dig i andras angelägenheter, framför alt icke i ett par unga
flickors, utan att människorna tro, att det ligger någonting därunder.
Lyd nu mitt råd och lämna flickan åt sitt öde.

John var mycket nedstämd, men han försökte dölja det och
svarade helt lugnt:

— Jag försäkrar dig, tant Mary, att fröken Kostolitz och jag ej göra
någonting orätt. Hör nu på mig och låtom oss ingå en
öfverenskommelse. Om du förmår tjugu personer att gå på hennes
konsert, skall jag gifva dig tjugu pund till din fattighamn. Jag skall
skicka dig biljetterna, fribiljetter förstås, så du har ingen svårighet
att bli af med dem. Vill du det?

— Tjugu pund! John, du är värkligen ädelmodig; men så är det


också en riktig välgärning. Det är en bedröflig anblick att se dessa
gamla människor i fattighuset. Jag har ofta gråtit däröfver och gamla
Betty Slowcome sade till mig, att, fastän hon och hennes man hålla
på att svälta ihjäl, lefva de ändå hällre utan en brödbit än de gå till
fattighuset.

— Det gör mig mycket ondt om dem, svarade sir John. Men en
öfverenskommelse är en öfverenskommelse. Du måste skaffa mig
mina tjugu personer, innan jag gifver dig dina tjugu pund; och du får
naturligtvis icke nämna ett ord om mig. Du kan ju säga, att du gör
det, emedan du intresserar dig för fröken Kostolitz. Och det kommer
att förefalla helt naturligt, eftersom hon varit hos dig på
Brackenhurst. Du försöker det ju i morgon, icke sant?

— I morgon, sade lady Mary dröjande, i morgon hade jag för hela
dagen ämnat begifva mig till Whitechapel. Där finnes en inrättning

— För fan i våld med inrättningen! Tänk på mina tomma platser.


Tant lilla, du gör det ju? Du lofvar ju att samla ihop så många af dina
vänner, du blott kan?

Tanten blickade missnöjd och förvånad in i hans ifriga, upprörda


ansikte.

— Mina fattiga förtjäna visserligen all hjälp de kunna få, sade hon
efter en paus. Då hälgar nog ändamålet medlen, men jag tycker inte
om den där historien och jag förstår dig inte, käre John. Det ligger
någonting därunder — det är inte värdt, att du låtsas som det ej
vore fallet.

Hon lät sina skarpa ögon en sekund hvila på honom och fortfor
sedan:

— Om det inte är den ena systern, så är det den andra. Jag tror,
att det är den andra. Jag tykte mest om henne af de båda systrarna
och jag minnes, att du gjorde detsamma och det är äfven hon, som
gifver musiklektioner. Nå, hon är en liten, söt varelse och du kommer
att ångra dig, om du utsätter henne för människornas skvaller och
prat. Men gå nu, ty jag har bref att skrifva. Jag skall göra hvad jag
kan för den där tråkiga konserten — ja, jag skall gå dit; men, om du
vill följa mitt råd, så håller du dig därifrån. Adjö nu.

— Adjö, jag skall icke uppehålla dig längre.

Han tog reda på sin hatt och käpp med ett lugn och en
långsamhet, som stodo i den skarpaste motsats till stormen i hans
inre, sedan kyste han sin tant lätt på pannan och lämnade rummet,
och lady Mary ropade efter honom, att han själf skulle stänga
ytterdörren, emedan hon hade så få tjänare i staden. Medan han
nere i hallen tände sin cigarrett, tänkte han inom sig: Det är lätt för
henne att säga: "Lämna flickan åt sitt öde." Men frågan är just: "Kan
jag det?"
XIII.

Adagio con Tenerezza.

Den ödesdigra konsertdagen uppgick kall, våt och stormig. Blåsten


var så skarp och bitande, att den tyktes uppsöka människornas mest
fördolda smygvrår för att väcka obehag hos dem. Sir John begaf sig
på eftermiddagen till Steinwaysalen vid så dåligt lynne, som en
människa med hans temperament öfver hufvud taget kan råka uti.
Regnet slog in i hans vagn tils han drog upp fönstren och då blåste
vinden iskallt in genom springorna.

Inga människor syntes till utanför dörren, men han hade med
afsikt kommit tidigt. Salen var också blott sparsamt fyld. Han satte
sig på den plats Margot valt åt honom, ty hon hade skänkt honom
en biljett — och väntade ångestfullt. Han kände sig för nervös för att
fördrifva tiden med att söka upp Margot och hennes syster. Nu
önskade han innerligt, att han aldrig gifvit sitt råd — bördan af det
ansvar, han med så lätt hjärta åtagit sig, tyktes nu tynga ned honom
ända till jorden. Om denna konsert misslyckades, förtjänade han de
förebråelser, med hvilka Margot en gång öfverhopat honom; ja, han
förtjänade nästan, att hon helt och hållet undandrog honom sitt
förtroende.

Slutligen började publiken samlas; de billigare platserna på sidorna


och längst bort i salen blefvo någorlunda väl fylda. Ah! Där kommo
fröknarna Lennox och Margaret Elkin — de snälla varelserna! De
sågo mycket fina ut och Margaret hade en så klädande hatt på sig.
De gingo småleende igenom hela salen. Croft steg upp och gick
emot dem.

— Som du ser ha vi allesamman infunnit oss, ehuru det egentligen


är en svår dag för Margarets reumatism, men eftersom du var så
angelägen därom, käre John, tykte vi, att vi skulle våga det.

— Mademoiselle Kostolitz erbjöd oss biljetter, inföll fröken Mary;


men vi sade, att du redan gifvit oss några, och hon blef mycket glad
och — som det föreföll mig, en smula öfverraskad.

Fru Elkin hade emellertid sett sig omkring i salen.

— Jag kan icke upptäcka en kristen själ som jag känner, sade hon,
men det kommer väl snart mera folk. Jag hoppas det för fröken
Kostolitz skull.

— Nå, men vi ha infunnit oss i sluten trupp, kuttrade fröken


Charlotte. Vi fyra komma att taga oss riktigt bra ut, icke sant, John?

— Ack, jag önskar, att här vore ett dussin sådana som ni, suckade
sir John innerligt. De fyra systrarna pladdrade vidare skrattande och
smickrade, och sir John blickade tankspridt bort mot närmaste dörr.
Ah! Där kom lady Mary åtföljd af en undersätsig dam med tre
döttrar, hvilka allesamman tydligt buro prägeln "landskusiner". Han
hälsade hennes inträde med riktig hänförelse.

— Hvar äro de öfriga sjutton? frågade han andlöst.

— Min käre gosse, du trodde väl aldrig, att jag skulle drifva dem
framför mig som en skock gäss? Dessutom fick jag inte ihop så
många. Jag fick endast tag på ett par till. De flesta af mina bekanta
ha lämnat staden och jag var så upptagen i går —

— Du har således icke hållit ditt löfte, afbröt hennes nevö henne
ock vände sig hastigt ifrån henne.

Då han återigen såg sig omkring tykte han, att salen icke mera var
så tom; nej, det var värkligen en hel hop människor där, troligtvis en
hop släktingar till Margots elever — han tykte sig bland dem
upptäcka flere af den skolflickstyp, Valérie beskrifvit för honom. Ja,
då blef behållningen från konserten visserligen icke särdeles stor.
Men ingen kunde åtminstone påstå, att salen varit tom och allra
minst så tom att det kunde nedslå Valéries mod. Om bara dessa
fasansfulla platser, som han var ansvarig för, ville fylla sig! Det
föreföll hans upprörda sinne som om de tomma stolraderna hånfullt
grinade emot honom; om de ej blefvo fylda, skulle de genast falla
Valérie i ögonen, då hon trädde fram på estraden.

— Fortfarande olycklig! sade en röst bredvid honom. Han spratt till


och såg sig om. Det var den dam, på hvars bistånd han
hufvudsakligast räknade.

— Nå, hvad har ni gjort för mig? frågade han ifrigt.


— Jag har i detta fasansfulla väder kommit hit på er olycksaliga
konsert, svarade hon rysande. Hu — hvad det är kallt! Jag tycker det
är öfvermåttan godhetsfullt af mig.

— Ja, det är mycket vänligt af er, instämde sir John helt ängslig till
mods. Men har ni ej varit i stånd att —

— Jag har förmått ett par personer att lofva komma hit, men jag
vet värkligen icke, om man kan vänta dem i detta förskräckliga
väder. Jag vet åtminstone, att jag inte hade gått ut i dag, ifall jag
kunnat undvika det. Nå, hvar skall jag taga plats — i främsta raden?
Jag har värkligen fullt upp med platser att välja på, ty de komma
bestämdt att stå tomma. — Hon var vid dåligt lynne och såg äfven
så ut; hon hade värkligen bjudit till att uppfylla sir Johns bön, och
det var icke hennes fel, att människorna icke ville gå ut i ett dylikt
Herrans väder; han behöfde väl icke därför se så ömklig och
besviken ut.

Hon gick vidare, halft om halft väntande, att han skulle följa med
henne; men han återvände till sin plats, ty han hade småningom
gripits af en nästan komisk förtviflan — komisk, då man betänker
orsaken därtill. Ack, dessa framplatser! De voro icke till hälften —
icke till en fjärdedel upptagna. Sir John stirrade på dem, tils de flöto
ihop och började dansa omkring för hans ögon. Sedan kom en sakta
rörelse honom att se upp: Valérie stod på estraden. Han märkte att
hon såg sig omkring och att hon tyktes bli likasom förbluffad. Hon
var mycket blek; hennes med så mycken omsorg valda hvita
klädning tyktes blott göra henne blekare; hennes ansikte såg i den
skarpa belysningen nästan tärdt ut. Det föreföll honom som hon icke
ens sett bra ut. Hon började med en sonat af Grieg, som var mycket
svår ätt spela, och om hon nu värkligen var nervös och icke i
stämning eller om Crofts förvirrade fantasi bedrog honom, nog af,
hon hade icke hunnit långt, innan han måste tillstå för sig själf, att
hon ej spelade såsom hon brukade. Det föreföll honom som om
hennes spel aldrig varit så uttryckslöst, ja, han tykte till och med, att
hon ett par gånger spelade orent. Det första stycket lämnade
åtminstone publiken oberörd; den skänkte henne blott vid slutet en
medelmåttig applåd, fastän sir John klappade, så ätt händerna
svedo, och lady Mary, som satt på första stolraden, kraftigt
bearbetade golfvet med sitt paraply. Crofts sinnesstämning blef, om
möjligt, ännu värre än förut. Det berodde så mycket på början både
för Valérie och för åhörarna, och början hade icke varit
uppmuntrande. Den spelande och publiken voro icke i kontakt med
hvarandra; och då han kände det, huru mycket djupare skulle icke
Valérie då vara berörd däraf. Hans blick gled från henne till Margot
och hvilade full af förvåning och förtjusning på henne. Om den ena
systern ej förmått göra sig gällande, såg den andra däremot så
mycket bättre ut. Hennes kinder glödde, hennes ögon blixtrade. Han
såg på hennes ansiktsuttryck, att hon väpnat sig till denna pröfning
och ansträngde hvarje nerv för att utplåna Valéries fel och brister.
Det föreföll honom nu som hon varit den större af de båda
konstnärinnorna. Han hade aldrig förut hört henne spela så bra —
med en sådan styrka och aplomb och tillika med så mycken känsla
och behag. Ehuru sir John varit mycket trög i sina musikaliska
studier och troligtvis alldeles hade försummat dem, ifall han ej
händelsevis sammanträffat med fröknarna Kostolitz, hyste han likväl
en varm kärlek till musiken. Som han dessutom var mäktig djupt
deltagande och erkännande, hälsade han Margots spel med värkligt
konstnärlig förtjusning.

Men denna konstnärliga beundran förvandlades snart till en


varmare och ömmare beundran af hennes personlighet. Den
präktiga, tappra flickan; hon ville icke låta kufva sig; alt hade
sammansvurit sig emot Valéries framgång, men hon ville kämpa till
sista ögonblicket — dölja systerns nederlag genom att hon tyktes
triumfera. Han gaf akt på de små fingrarna, där de flögo öfver
tangenterna — kloka, skickliga små fingrar, som så tappert
ansträngde sig och åstadkommo så mycket, och huru fina och vackra
de voro sedan, en markisinnas händer, såsom han redan en gång
förut tänkt. Sedan betraktade han det prydliga, högburna hufvudet,
hvilket satt så stolt på den smärta halsen, det mjuka håret, bland
hvars bucklor samma kam glimmade, som en gång framkallat lady
Rosamunda Gorsts bitande anmärkningar. Lilla, täcka hufvud!
Diamanter skulle vida bättre anstå det än de billiga stenar, som nu
prydde det. Diamanter! De Croftska diamanterna? Ja, hvarför icke?
Hvar kunde han väl finna en så sällsynt och ljuf hustru och en, som
så till fullo var värd hans kärlek! Värd hans kärlek! Ordet var så
uttryckslöst och tomt. Han älskade ju henne redan djupt och
lidelsefullt; och i sitt hjärtas innersta djup viste han också, att hon
besvarade hans kärlek.

Medan Valérie blek och alt mera modstulen stod inför den
besvikna publiken och Margot gjorde alt hvad hon kunde af det
svåra ackompagnementet, satt sir John blott och smålog för sig själf
och drömde. Kanske det vore riktigare att säga, det han plötsligt
vaknade. Han hade i veckotal gått som i en dröm, men nu hade
hans ögon slutligen blifvit öppnade. Det af ljufhet fylda dunklet var
försvunnet och nu var hans själ uppfyld af ett ännu ljufvare, mera
strålande dagsljus. L'esprit du reveil hade kommit öfver honom. Han
kände nu betydelsen af det otydliga, ofattliga hopp och den glädje,
som åtföljt hans dröm. Om natten hade han känt, att de voro i hans
närhet, och han hade fruktlöst sträkt ut händerna efter dem. Nu
kunde han i det klara dagsljuset se och gripa värkligheten. Han
älskade Margot Kostolitz och ville göra henne till sin hustru!

Hvad det måste vara ljuft att fatta dessa små, flitiga händer och
be dem hvila ut i hans, att säga henne, det fattigdom, bekymmer
ock svikna förhoppningar nu lågo bakom henne, att hon icke mera
behöfde kämpa och umbära! Hvad det måtte vara förtjusande att
ösa öfver henne alt hvad en stor rikedom kan förskaffa! Sir John var
visst icke penningedryg, men han erfor likväl en liflig tillfredsställelse
vid tanken på sin ställning, sin börd, sina vidsträkta besittningar, nu,
då Margot skulle dela alt med honom. Då han tänkte på alt hvad han
skulle göra för henne och förestälde sig hennes öfverraskning,
hennes blyga, vantrogna glädje, uppfyldes hans egen själ af en
förtjusning, som liknade ett rus.

Hvad för slag! Gingo människorna redan? Var konserten förbi? De


måttliga applåderna, som följt på hvarje stycke och i hvilka han
mekaniskt deltagit, hade upphört. Valérie och Margot voro
försvunna. Någon stängde pianot. Sedan blef det en allmän rörelse
— ett sorl af röster. Han flög upp och skyndade in i artistrummet för
att få träffa de båda systrarna. Där voro äfven ett par andra
personer, men dem hade Valérie vändt ryggen åt och var
ögonskenligen sysselsatt med att knäppa igen sin kappa. Margot var
emellertid fullkomligt synlig och hade ett förbindligt ord, ett tappert,
ljust leende för alla, som talade med henne. Croft, som fortfarande
sväfvade uppe i molnen, gick hastigt fram till henne.

— Nå, var det inte en framgång? utropade han.

Leendet försvann från hennes läppar och hon betraktade honom


ett ögonblick, innan hon på ungerska svarade:
— Jaså, ni kallar detta för en framgång? Valérie kommer att sörja
ihjäl sig. Jag fruktade, att hon skulle digna ned, innan hon kom till
slutet. Märkte ni ej, att hon icke alls var sig själf? Hon presterade
icke på långt när det, hon kan prestera.

Nå, men så presterade ni desto mera. Jag har aldrig hört er spela
så bra som i dag!

— Ah, jag! svarade hon afvärjande och med en otålig rörelse.


Hvad betyder jag väl? Jag försökte dölja hennes förvirring, det är alt.
Ser ni, hon var från början modlös. Där voro ju hela rader med
tomma platser! Hon blef så öfverraskad, emedan vi hört, att
biljetterna haft god åtgång. Men det är förmodligen vädret, som är
skuld därtill. Lyckan är oss aldrig bevågen.

Vid orden "hela rader med tomma platser" hade sir John åter
plötsligt kommit ned till jorden och såg nu alldeles förstörd och
förvirrad ut. Men han var nog feg att genast instämma i
hänsyftningen på det fula vädret.

— Ja, det är en afskyvärd dag. Jag är öfvertygad om, att här varit
fullt med folk, om det varit vackrare väder. Men det är väl bäst, att
jag skaffar er en vagn? Jag tror visst, att regnet fortfar, och I ären
säkerligen båda bra trötta. Men får jag inte först tala ett ord med er
syster?

— Jag tror det är bäst, att ni låter bli, svarade Margot. Valéries
rygg såg afgjordt afböjande ut. Han dröjde ännu ett ögonblick och
sade:

— Vet ni, hennes framgång var värkligen icke så liten som ni tror.
Det var flere personer i mitt grannskap, som applåderade alldeles
entusiastiskt.

Men Margot afbröt honom med en bitter åtbörd, för hvilken han
tog till flykten.

Några minuter därefter hjälpte han de båda systrarna upp i den


vagn, han skaffat dem. Han hade bjudit Valérie armen, men hon
hade häftigt visat bort honom, och sålunda var det nu Margots hand,
som hvilade på hans arm. Han kände huru denna hand darrade och
märkte, att hon nu, då hon icke längre behöfde behärska sig, såg
mycket blek och sorgsen ut; ja, då skenet från gatlyktorna föll på
henne, syntes det honom, som om hon icke haft långt efter tårarna.
Då han, olycklig och plågad af förebråelser, stod vid vagnsdörren och
marterade sin hjärna för att hitta på några tröstens ord, lutade
Valérie sig plötsligt framåt ur det inre af vagnen.

— Så mycket ger jag för er idé! ropade hon i vredesmod. Det var
ett fullständigt fiasko och det är ni skuld till!

Han blef så förbluffad öfver detta plötsliga angrepp, att han tog
emot det med absolut tystnad. Men en välbekant röst bakom honom
tog genast och högst energiskt hans försvar och lady Mary Bracken
trängde sig hastigt framåt.

— Hvad säger hon där? Nå, det är då värkligen för mycket. Den
stackars gossen har ansträngt sig till det yttersta. Hvar är hon? Hvar
är fröken Kostolitz? Det är så mörkt, när man kommer ut. Ah, där är
ni ju! Huru står det till? frågade hon och sträkte öfver nevöns axel
ett par knotiga fingrar in i vagnen. — Men jag vet då alldeles säkert,
att ni ej har någonting att förebrå sir John; han har gjort alt hvad i
hans förmåga stått för att prångla ut biljetter åt er. Jag kan försäkra
er, att han skickat mig hela tjugu stycken och att han äfven plågat
alla mina bekanta därmed.

— Pitt Street, tjuguåtta! ropade sir John till kusken, som redan
helt otåligt tittade fram undan sin oljedukshatt. — Drag dig nu
undan, bästa tant — annars blir du öfverkörd!

Margot lutade sig öfverraskad och mållös tillbaka i vagnen. Valérie


var för upprörd för att fatta hela betydelsen af lady Marys ord, men
Margot hade förstått alt.

Dessa ord och fröken Mary Lennox' harmlösa hänsyftning på John


Crofts ädelmod samt det hittils oförklarliga faktum, att de försålda
biljetternas antal absolut icke stämde med de många tomma
platserna, gjorde, att hon inom ett ögonblick hade John Crofts hela
misslyckade plan klar för sig. Det föreföll henne som om lifvet icke
kunde ha någon vidare eller åtminstone icke någon bittrare
förödmjukelse i beredskap åt henne. Hon var icke ond eller uppbragt
— därtill var hon för djupt sårad — men hon hade en förnimmelse
som om hon aldrig mera vore i stånd att se honom in i ansiktet. Om
hon blott kunde hålls Valérie i okunnighet om alt detta! Det kunde
måhända lyckas, om hon blott var försiktig.

Valérie skulle bestämdt aldrig förlåta honom. Men det var också
för mycket. Han hade behandlat dem som ett par barn, han hade
bedragit — visserligen i bästa afsikt — men han hade ändå bedragit
dem. Han var god och ädelmodig och hade velat hjälpa dem, men —
det var i alla fall för grymt. Hon besvarade Valéries lidelsefulla
anklagelser tankspridt och med ett par tröstande ord, men det gick
omkring i hennes hufvud. Och det var ju äfven ur ekonomisk
synpunkt en riktig olycka! De måste naturligtvis ersätta sir John alt
hvad han gifvit ut — det var outhärdligt, att han ur sin egen ficka
velat hålla dem skadeslösa för den förlust, de annars hade lidit. De
hade ännu icke sjunkit så djupt, att de ville taga emot pengar af
honom; de skulle genast ersätta honom, ehuru alla Margots
besparingar skulle gå åt därtill. Ja, till följd af detta misslyckade
vågstycke skulle de råka i en vida sämre belägenhet än förut. De
hade förlorat sina pengar och sin prestige — och ack! hade de ej
gjort en ännu större förlust — huru gick det nu med deras
förtroende till den vän, som bedragit dem? Margot tillbragte natten
under en feberaktig oro; hon längtade efter dagen, efter det
ögonblick, då hon kunde vältra ifrån sig åtminstone en del af den
börda, som nedtrykte henne. Hon skulle vid vanlig tid på
förmiddagen träffa sir John hos hans kusiner; då skulle hon förebrå
honom det svek han tillåtit sig gentemot dem samt noga taga reda
på, huru mycket han gifvit ut för dem. Hon tykte, att hon ej kunde
andas, förrän hon blifvit befriad från denna skuldbörda. Om de
gamla damerna blott vore ur vägen — om hon blott kunde räkna på
att fem minuter få vara ensam med honom — hvad skulle hon taga
sig till, om hon ej blef i tillfälle att befria sig från denna
förödmjukelsens börda?

Lyckan tyktes vara henne bevågen, ty, då hon kom in i förmaket,


fann hon endast sir John, som väntade där. Hon hade trott, att han
skulle se förvirrad och nedslagen ut; hon hade väntat att hos honom
få upptäcka den oro, med hvilken han alltid motsåg hennes
missnöje. Han måste ju veta, att hon var ond — nej icke ond — utan
sårad ända in i hjärtats innersta djup; men han kom emot henne
med utsträkta händer och med strålande, förväntansfull min. Han
hade också räknat ögonblicken till hennes ankomst och han väntade
henne icke plågad af samvetskval, utan full af glad otålighet.
Hans utseende var så helt annorlunda än Margot förestält sig det,
att hon nu ryggade tillbaka och blef ännu en aning blekare än förut.
Hon var öfverraskad, kände sig på nytt sårad öfver, att han tog en
sak så lätt, hvilken gått henne så djupt till sinnes; men kanske han
icke anade, att hon gissat hans hemlighet.

— Sir John, sade hon med darrande röst, det fägnar mig, att jag
blir i tillfälle att tala med er.

Hon tystnade; det var så svårt att komma fram med det hon hade
på hjärtat, medan dessa glada, strålande ögon hvilade på henne.

— Jag ville också gärna tala med er, svarade han, och bad därför
mina kusiner lämna oss ensamma några ögonblick. De vänliga
själarna tro, att vi ha konsertangelägenheterna att tala om, och ha
därför lofvat att icke störa oss.

— Den angelägenhet, jag önskar tala med er om rör konserten,


sade Margot. Hon darrade så, att hon knappast kunde stå, och
hennes röst skälfde, men hon gjorde häftigt våld på sig och
fortsatte: Sir John, jag har gissat någonting.

— Har ni det? frågade han ömt och glädtigt betraktande henne.


Jag är bra nyfiken att få veta, huru mycket ni gissat!

— Ack, skratta inte ut mig! ropade hon med smärtsam


sinnesrörelse.
Huru kan ni skratta, då ni förödmjukat mig såsom ni gjort?

— Jag! utropade sir John uppriktigt förvånad.

— Ja! Kan ni väl ett ögonblick föreställa er, att jag skulle vara
annat än sårad och förödmjukad, då jag tänker på, huru ni handlat
gentemot Valérie och mig?

— Jaså i fråga om biljetterna, menar ni? afbröt Croft henne


rodnande, men likväl småleende.

— Ja, jag menar just i fråga om biljetterna, svarade Margot, och


till hennes stora förtrytelse bröto orden fram med en snyftning. Huru
kunde han stå så där leende framför henne, sedan han behandlat
henne på detta sätt? Hvarför fann hon inga ord att klandra och
förödmjuka honom med på samma sätt som han förödmjukat
henne? Huru kom det sig, att hon, trots alla sina bemödanden, ej
kunde vara ond på honom?

Vid ljudet af hennes snyftning försvann det segersälla uttrycket ur


sir Johns ansikte och gaf rum för den djupaste bedröfvelse, men han
sade icke ett ord och hon fortfor hastigt och osäkert:

— Ni skall naturligtvis få edra pengar tillbaka. Ni måste ju inse, att


vi ej kunna gå in därpå. Förstår ni ej, att vi skulle uppfatta ert
handlingssätt som en förolämpning, om vi ej viste, att ni menat väl?
Ja, det betyder helt enkelt, att ni gifver oss pengar, att ni förärar oss
en gåfva på fyratio eller femtio pund.

— Och antag, att jag gjorde det, sade John mycket vekt och
fattade plötsligt hennes hand. Antag, att jag gjorde det, Margot;
hvad betyder det väl? Då jag vill ge er alt hvad jag eger och mig själf
med. Min älskade, jag är visst icke värdig att bli er make, men jag
ber, att ni ändå tager mig.

Om hon förut varit blek, så blef hon nu askgrå. Han trodde ett
ögonblick, att hon skulle svimma. Hon sträkte ut vänstra handen och
försökte gripa tag i kaminkransen; hon hade äfven användt högra
handen därtill, men han höll den alt för stadigt sluten i sin.

— Jag öfverraskade er, fortfor han ifrigt. Jag tror, att jag själf är
öfverraskad. Jag vet inte, huru det kom sig. Men, Margot, vi borde ju
ha kunnat gissa det! Vi ha under alla dessa veckor kommit alt
närmare och närmare hvarandra och nu är den tid inne, då vi ej
kunna reda oss utan hvarandra. Jag vet åtminstone, att jag ej kan
lefva utan er, och, min älskade, jag tror, att det är på samma sätt
med er. Men huru förfärad ni ser ut? Är den tanken, att jag älskar er,
så förskräcklig för er, Margot? och vill ni inte vara uppriktig och
tillstå, att ni likaledes älskar mig, ty jag är fullt och fast öfvertygad
om, att ni gör det.

Detta rättframma, oförbehållsamma frieri var ytterst karaktäristiskt


för John Croft; han fortsatte ända till slutet utan att öfverväga,
huruvida det var klokt och politiskt. Det var en smula förhastadt att
visa, det han var så säker på Margots genkärlek. Ty ingen kvinna vill
så lätt gifva sig fången och med Margot, som var mera reserverad än
andra och därjämte inbyrd med ärfda, trångbröstade idéer om det
passande, var det fara, att hon skulle taga anstöt af hans
förtröstansfulla ton. Men kanske sir John icke desto mindre handlat
rätt, då han följde sin instinkt. Då hon så oförberedt råkade ut för
hans angrepp, var det just icke troligt, att hon kunde motstå honom.
Hon var så öfverväldigad af de olika sinnesrörelser, hans ord
framkallade hos henne, att hon hvarken kunde röra sig eller svara.

— Ack, min lilla Margot, utropade John, se inte så förskräkt ut —


det är ju ingenting att vara skrämd för. Jag skall aldrig mera låta
bekymmer och oro nalkas er. Ni har redan haft mera än nog däraf på
er andel, men nu är alt detta förbi.
Då hon slog upp ögonen och såg hans vackra, kärleksfulla ansikte,
som strålande af lycka och segersällhet lutade sig ned öfver henne,
blef hon också medveten om, att hennes hjärta genombäfvades af
en plötslig lycka. Denna tanke föreföll henne knappast trolig och
kunde icke slå säker rot i hennes själ, men den öfverväldigade henne
likväl för ögonblicket. Hans ansikte kom alt närmare hennes; — han
skulle ha kyst henne — men hon rykte sig lös med ett litet, förfäradt
anskri.

— Ack nej, ropade hon; nej, nej — vi äro tokiga! Det vore alldeles
omöjligt!

Hon sjönk ned på närmaste stol och gömde ansiktet i händerna.


Croft var icke det minsta öfverraskad; han gick ett steg närmare och
stälde sig bredvid henne.

— Om vi äro tokiga, sade han, så är det härligt att vara tokig. Jag
för min del önskar aldrig mera bli förnuftig. Min lilla Margot, ni har
haft ett så tungt och sorgligt lif, att ni tycker det måste vara en
vansinnig dröm att vara lycklig; men vi skola det oaktadt bli lyckliga
tillsamman, ni, Margot — ni och jag. Tror ni ej, att jag skulle kunna
göra er lycklig, min älskling?

Han lutade sig ned öfver henne och drog med största ömhet bort
hennes händer från ansiktet; trollmakten i hans blick fängslade
henne.

— Margot, ni älskar mig? frågade han enträget.

Hans glöd smittade henne; han läste i hennes ögon, att hon blott
älskade honom alt för innerligt, ögonblicket därpå måste hon uttala
de ord, han längtade att få höra. Men hon gjorde plötsligt våld på sig
och trängde orden tillbaka. Hon satte sig till rätta i stolen, drog bort
hans händer och sade så bestämdt hon någonsin kunde:

— Sir John, jag kan ej bli er hustru. Det är så likt er att glömma
alt, som gör en förbindelse oss emellan omöjlig; men jag tänker på
det.

— Hvad tänker ni på? utropade han otåligt, Margot, jag hoppas, ni


inte kommer fram med några dumheter. Mellan oss båda får det icke
bli fråga om några trivialiteter.

En lätt rodnad färgade Margots bleka kinder. — Jag vet, att jag
icke är er jämlike, sade hon stolt. Men jag ämnade icke säga ett ord
därom, ehuru jag tror, att många människor skulle anse våra olika
lefnadsställningar för ett oöfverstigligt hinder. Och om det också ej
fans något annat, skulle jag för min del anse det ohederligt att tillåta
er för min skull taga ett så oöfverlagdt steg. Ett steg, som ni
måhända sedermera skulle komma att ångra.

Uttrycket i hans ansikte förbjöd henne att vidare fortsätta detta


ämne.
Hon tystnade, men fortsatte strax därpå skygt:

— Och sir John, så har jag ju Valérie.

— Jag har inte glömt Valérie, sade Croft allvarsamt. Jag tror ni kan
lita på, att jag skulle bli en god bror åt henne. Hon skall vistas hos
oss tils hon gifter sig, hvilket torde bli snart nog, tillade han leende.

Han höll af Valérie och intresserade sig på ett broderligt sätt för
hennes framtid. Men det måste icke desto mindre vara härligt, att en
gång ensam få rå om Margot och Margots skarpa öra upptäkte en
skymt af denna längtan i hans ord. Därför sade hon bestämdt och till
och med en smula bittert:

— Och ni skulle naturligtvis vara glad, då ni blef af med Valérie.


Ack nej, sir John, det går icke, för sig! Jag har svurit att helt och
hållet egna mig åt Valérie så långe hon behöfver mig, och det tror
jag hon alltid kommer att göra. Ni ser ju själf, att hon icke är lik
andra människor. Man måste vaka öfver henne och leda henne, och
jag måste vara fri för att kunna göra detta. Och dessutom måste vi
äfven taga hennes konst i betraktande; hon måste ha fullt spelrum
för sitt kall och jag måste städse vara tillhands. Ni är alt för god,
men jag kan icke gifta mig med er. Det vore icke rätt hvarken mot er
eller mot Valérie. Jag kunde icke uppfylla min plikt emot er båda.

— Och då måste jag förstås bli offret, inföll sir John.

— Ack, sade Margot och blickade hastigt genom tårar upp till
honom, ty hon kunde ej uthärda att höra honom tala i denna ton.
Ack, var inte ond! Nej, det är värkligen icke så. Jag gör det, emedan
jag fruktar, emedan jag vet —

Hon tystnade plötsligt. Sir John anade hvilken bekännelse det var,
som darrade på hennes läppar, och hans ansikte antog ett mildare
uttryck — men för öfrigt förrådde han ej sin sinnesrörelse, utan
fortfor lugnt och bestämdt:

— Jag tycker, att ni onödigtvis oroar er. Det är ju icke sagdt, att
våra viljor behöfva stöta ihop.

— Ack, ni förstår icke huru våra önskningar — vid minsta


anledning — skulle vara hvarandra diametralt motsatta, svarade
Margot. Låtom oss blott taga ett exempel: Ni skulle bestämdt icke
önska, att jag ackompagnerade Valérie, ifall hon uppträdde
offentligt.

Sir John började skratta och tvekade ett ögonblick, innan han
svarade; sedan sade han på det öppna, okonstlade sätt, hon alltid
tykt så mycket om:

— Margot, det finnes många karlar, som utan tvifvel skulle lofva
alt möjligt för att ernå det de önska, men jag — jag är ju i många
afseenden icke värd synnerligen mycket, men uppriktig är jag! Och
därför säger jag nu också öppet, att jag icke gärna såg, att ni
spelade offentligt, sedan ni blifvit min hustru.

Trots hans halft skämtsamma ton kände Margot likväl, att det var
ett fast beslut, som låg till grund för hans ord, och hon viste, att om
han också älskade henne huru varmt och innerligt, så fans det likväl
många punkter, i hvilka han icke skulle gifva efter för henne. Hon
hade under den tid de varit bekanta så ofta varit den, som haft
ledningen, och hade varit så van att utöfva inflytande på honom, att
upptäkten af denna nya sida i hans karaktär nästan var ett litet slag
för henne. Och det lät nästan som hon varit stucken, då hon
svarade:

— Jag skulle äfven tillhöra Valérie.

— Margot, ni skall icke leka med mig. Jag uppskattar er kärlek till
Valérie och skulle aldrig försöka minska den. Jag tror, att ni känner
mig tillräckligt för att veta det. Som min hustru kunde ni göra mera
för Valérie än någonsin förut. Men systerlig tillgifvenhet och kärleken
mellan man och hustru äro två olika saker. Om ni älskar mig såsom
jag er, måste jag komma i första rummet. — Ack, nej! utropade
Margot hastigt, förskräkt öfver medvetandet om sin svaghet och
hans växande inflytande öfver henne. Nej, nej, det går icke för sig!
Valérie måste komma i främsta rummet! Hon har alltid varit den
första!

Croft betraktade henne ett ögonblick tigande, sedan kastade han


huvudet bakåt med en stolt rörelse och sade:

— Kanske ni har rätt, Margot, och att det är bättre att vi skiljas, ty
jag vill inte nöja mig med andra platsen. Därtill älskar jag er för
innerligt.

Han dröjde ännu och betraktade henne som om han velat låta
henne få tid på sig att försöka få fram ett ord; men hon bet ihop
tänderna och såg på honom med en stolt och stadig blick. Hon hade
icke ens i det ögonblick, då hon tyktes vilja gifva efter, synts honom
så skön och så tjusande som nu, då han skulle förlora henne. Hans
ansiktsuttryck förändrades.

— Margot, bad han, hvarför skola vi tillintetgöra vårt lif, då vi


kunde vara så lyckliga med hvarandra?

Hans ord läto nästan som ett ångestrop och de genljödo i hennes
hjärta, men hon svarade blott med fasthet:

— Jag vill ej öfvergifva Valérie.

— Lef då väl! stönade sir John.

— Jag hoppas ni glömmer, sade Margot stammande.

Han gaf till ett kort och bittert skratt och gick utan ett ord vidare
bort mot dörren.

You might also like