You are on page 1of 67

SAS for R users : a book for budding

data scientists First Edition Ohri


Visit to download the full and correct content document:
https://ebookmass.com/product/sas-for-r-users-a-book-for-budding-data-scientists-firs
t-edition-ohri/
SAS for R Users
SAS for R Users

A Book for Data Scientists

Ajay Ohri

Delhi, IN
This edition first published 2020
© 2020 John Wiley & Sons, Inc.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,
or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording
or otherwise, except as permitted by law. Advice on how to obtain permission to reuse material
from this title is available at http://www.wiley.com/go/permissions.

The right of Ajay Ohri to be identified as the author of this work has been asserted in accordance
with law.

Registered Office
John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, USA

Editorial Office
111 River Street, Hoboken, NJ 07030, USA

For details of our global editorial offices, customer services, and more information about Wiley
products visit us at www.wiley.com.

Wiley also publishes its books in a variety of electronic formats and by print‐on‐demand. Some
content that appears in standard print versions of this book may not be available in other formats.

Limit of Liability/Disclaimer of Warranty


While the publisher and authors have used their best efforts in preparing this work, they make no
representations or warranties with respect to the accuracy or completeness of the contents of this
work and specifically disclaim all warranties, including without limitation any implied warranties
of merchantability or fitness for a particular purpose. No warranty may be created or extended
by sales representatives, written sales materials or promotional statements for this work. The
fact that an organization, website, or product is referred to in this work as a citation and/or
potential source of further information does not mean that the publisher and authors endorse the
information or services the organization, website, or product may provide or recommendations
it may make. This work is sold with the understanding that the publisher is not engaged in
rendering professional services. The advice and strategies contained herein may not be suitable
for your situation. You should consult with a specialist where appropriate. Further, readers should
be aware that websites listed in this work may have changed or disappeared between when this
work was written and when it is read. Neither the publisher nor authors shall be liable for any
loss of profit or any other commercial damages, including but not limited to special, incidental,
consequential, or other damages.

Library of Congress Cataloging‐in‐Publication Data


Names: Ohri, (Ajay), author.
Title: SAS for R users : a book for data scientists / Ajay Ohri.
Description: First edition. | Hoboken, NJ : John Wiley & Sons, Inc., 2020.
| Includes bibliographical references and index.
Identifiers: LCCN 2019021408 (print) | ISBN 9781119256410 (pbk.)
Subjects: LCSH: SAS (Computer program language) | R (Computer program
language) | Statistics–Data processing.
Classification: LCC QA76.73.S27 O44 2020 (print) | LCC QA76.73.S27
(ebook) | DDC 005.5/5–dc23
LC record available at https://lccn.loc.gov/2019021408
LC ebook record available at https://lccn.loc.gov/2019980765

Cover Design: Wiley


Cover Image: © DmitriyRazinkov/Shutterstock

Set in 10/12pt Warnock by SPi Global, Pondicherry, India

Printed in the United States of America

10 9 8 7 6 5 4 3 2 1
This book is dedicated to my students and my family, my son Kush Ohri,
members of my church, and my God Jesus Christ.
vii

Contents

Preface xiii
Scope xiv

1 About SAS and R 1


1.1 ­About SAS 1
1.1.1 Installation 2
1.2 ­About R 2
1.2.1 The R Environment 3
1.2.2 Installation of R 3
1.3 ­Notable Points in SAS and R Languages 4
1.4 ­Some Important Functions with Comparative Comparisons
Respectively 4
1.5 ­Summary 5
1.6 Quiz Questions 5
Quiz Answers 6

2 Data Input, Import and Print 7


2.1 ­Importing Data 7
2.1.1 Packages in R 7
2.2 ­Importing Data in SAS 8
2.2.1 Data Input in SAS 8
2.2.2 Using Proc Import to Import a Raw File 10
2.2.3 Creating a temporary dataset from a permanent
one using “set” 10
2.3 ­Importing Data in R 10
2.3.1 Importing from Comma Separated Value (CSV) Files 11
2.3.2 Importing from Excel Files 11
2.3.3 Importing from SAS 12
2.3.4 Importing from SPSS and STATA 12
2.3.5 Assigning the Values Imported to a Data Object in R 12
viii Contents

2.4 ­Providing Data Input 13


2.4.1 Data Input in R 13
2.4.1.1 Using the c() function is the simplest way to create
a list in R 13
2.4.1.2 Providing missing values to the vector 13
2.4.1.3 To Input multiple columns of data 14
2.4.1.4 Using loops to input 14
2.5 ­Data Input in SAS 14
2.6 ­Printing Data 16
2.6.1 Print in SAS 16
2.6.2 Print in R 16
2.7 ­Summary 17
2.8 Quiz Questions 17
Quiz Answers 18

3 Data Inspection and Cleaning 19


3.1 ­Introduction 19
3.2 ­Data Inspection 19
3.2.1 Data Inspection in SAS 19
3.2.2 Data Inspection in R 20
3.3 ­Missing Values 22
3.3.1 Missing Values in SAS 22
3.3.2 Missing Values in R 26
3.4 ­Data Cleaning 29
3.4.1 Data Cleaning in SAS 29
3.4.2 Data Cleaning in R 31
3.5 Quiz Questions 31
Quiz Answers 32

4 Handling Dates, Strings, Numbers 33


4.1 ­Working with Numeric Data 33
4.1.1 Handling Numbers in SAS 33
4.1.2 Numeric Data in R 35
4.2 ­Working with Date Data 37
4.2.1 Handling Dates in SAS 37
4.2.2 Handling Dates in R 39
4.3 ­Handling Strings Data 42
4.3.1 Handling Strings Data in SAS 42
4.3.2 Handling Strings Data in R 46
4.4 Quiz Questions 48
Quiz Answers 49
Contents ix

5 Numerical Summary and Groupby Analysis 51


5.1 ­Numerical Summary and Groupby Analysis 51
5.2 ­Numerical Summary and Groupby Analysis in SAS 51
5.3 ­Numerical Summary and Group by Analysis in R 58
5.3.1 Hmisc and Data.Table Packages 60
5.3.2 Dplyr Package 63
5.4 Quiz Questions 71
Quiz Answers 72

6 Frequency Distributions and Cross Tabulations 75


6.1 ­Frequency Distributions in SAS 75
6.2 ­Frequency Distributions in R 78
6.2.1 Frequency Tabulations in R 78
6.2.2 Frequency Tabulations in R with Other Variables Statistics 81
6.3 Quiz Questions 82
Quiz Answers 82

7 Using SQL with SAS and R 85


7.1 ­What is SQL? 85
7.1.1 Basic Terminology 85
7.1.2 CAP Theorem 85
7.1.3 SQL in SAS and R 86
7.2 ­SQL Select 86
7.2.1 SQL WHERE 89
7.2.2 SQL Order By 89
7.2.3 AND, OR, NOT in SQL 90
7.2.4 SQL Select Distinct 93
7.2.5 SQL INSERT INTO 94
7.2.6 SQL Delete 96
7.2.7 SQL Aggregate Functions 97
7.2.8 SQL ALIASES 98
7.2.9 SQL ALTER TABLE 99
7.2.10 SQL UPDATE 100
7.2.11 SQL IS NULL 102
7.2.12 SQL LIKE and BETWEEN 103
7.2.13 SQL GROUP BY 104
7.2.14 SQL HAVING 105
7.2.15 SQL CREATE TABLE and SQL CONSTRAINTS 106
7.2.16 SQL UNION 108
7.2.17 SQL JOINS 110
7.3 ­Merges 112
x Contents

7.4 ­Summary 117


7.5 Quiz Questions 117
Quiz Answers 118

8 Functions, Loops, Arrays, Macros 119


8.1 ­Functions 119
8.2 ­Loops 119
8.3 ­Arrays 121
8.4 ­Macros 122
8.5 Quiz Questions 126
Quiz Answers 127

9 Data Visualization 129


9.1 ­Importance of Data Visualization 129
9.2 ­Data Visualization in SAS 130
9.3 ­Data Visualization in R 143
9.4 Quiz Questions 148
Quiz Answers 149

10 Data Output 151


10.1 ­Data Output in SAS 151
10.2 ­Data Output in R 153
10.3 Quiz Questions 156
Quiz Answers 157

11 Statistics for Data Scientists 159


11.1 ­Types of Variables 159
11.2 ­Statistical Methods for Data Analysis 160
11.3 ­Distributions 160
11.4 ­Descriptive Statistics 161
11.4.1 Measures of Central Tendency: It is the Measure of Location that
Gives an Overall Idea of the Dataset 161
11.4.2 Measures of Dispersion 161
11.4.3 Skewness and Kurtosis 162
11.4.4 Central Limit Theorem 162
11.5 ­Inferential Statistics 162
11.5.1 Hypothesis Testing 163
11.5.2 Probability 165
11.5.3 Bayes Theorem 166
11.6 ­Algorithms in Data Science 166
11.6.1 Cross Validation 167
11.6.2 Types of Regression 167
Contents xi

11.6.3 Metrics to Evaluate Regression 168


11.6.4 Types of Classification 169
11.6.5 Metrics to Evaluate Classification 171
11.6.6 Types of Clustering 174
11.6.7 Types of Time Series Analysis 177
11.6.8 Types of Dimensionality Reduction 180
11.6.9 Types of Text Mining 180
11.7 Quiz Questions 181
Quiz Answers 181

Further Reading 183


Index 185
xiii

Preface

I would like to thank the generosity of the SAS Institute and its employees
to provide SAS On Demand for Academics for free without whom this book
would not exist. In addition, I also want to thank the baristas from Starbucks
Gurgaon. These are the people who downvote my questions on Stackoverflow.
You inspire me guys.
SAS for R users is aimed at entry‐level data scientists. It is not aimed at
researchers in academia nor is it aimed at high‐ end data scientists working on
Big Data, deep learning, or machine learning. In short, it is merely aimed at
human learning business analytics (or data science as it is now called).
Both SAS and R are widely used languages and yet both are very different.
SAS is a programming language that was designed in the 1960s which is broadly
divided into Data Steps and a wide variety of Procedure or PROC steps, while
R is an object oriented, mostly functional, language designed in the 1990s.
There are many, many books covering either but only very few books
­covering both.
Why then write the book? After all, I have written two books on R, and one
on Python for R. SAS language remains the most widely used language in
enterprises, contributing directly to the brand name, and profitability of one
of the largest private software companies that invests hugely in its own research
instead of borrowing research in the name of open source. A statistics student
knowing Python (esp Machine Learning ML), R, SAS, Big Data (esp Spark ML),
Data Visualization (using Tableau) is a mythical unicorn unavailable to
­recruiters who often have to settle for a few of these skills and then train them
in house.
As a teacher, I want my students to have jobs – there is no ideological tilt to
open source or any company here. The probability of students getting jobs
from campus greatly increases if they know BOTH SAS and R not just one of
them. That is why this book has been written.
xiv

Scope

This book is designed for professionals and students; people who want to enter
data science and who have a coding background with some basics of statistical
information. It is not aimed at researchers or people who like giraffes and do
not read the book from the beginning.
1

About SAS and R

Here is a brief introduction about R and SAS,instructions about installations


and a broad high‐level comparison.

1.1 ­About SAS
SAS used to be called the Statistical Analysis System Software suite developed
by the SAS Institute for advanced analytics, business intelligence, data man-
agement, and predictive analytics. Developed at North Carolina State
University from 1966 until 1976, when the SAS Institute was incorporated. It
was then further developed in the 1980s and 1990s with the additional statisti-
cal procedures and components. SAS is a language, a software suite and a com-
pany created by Anthony James Barr and James Goodnight along with two
others. For purposes of this book we will use SAS for SAS computer language.
●● SAS also provides a graphical point and click user interface for non‐technical
users.
While a graduate student in statistics at North Carolina State University,
James Goodnight wrote a computer program for analyzing agricultural data.
After a few years, James’s application had attracted a diverse and loyal
­following among its users, and the program’s data management and reporting
capabilities had expanded beyond James’s original intentions.
In 1976, he decided to work at developing and marketing his product on a
full‐time basis, and the SAS Institute was founded. Since its beginning, a dis-
tinguishing feature of the company has been its attentiveness to users of the
software. Today, the SAS Institute is the world’s largest privately‐held software
company, and Dr. James Goodnight is its CEO. He continues to be actively
involved as a developer of SAS System software as well as being one of the most
widely respected CEOs in the community.

SAS for R Users: A Book for Data Scientists, First Edition. Ajay Ohri.
© 2020 John Wiley & Sons, Inc. Published 2020 by John Wiley & Sons, Inc.
2 SAS for R Users

The SAS System has more than 200 components


●● Base SAS – Basic procedures and data management
●● SAS/STAT – Statistical analysis
●● SAS/GRAPH – Graphics and presentation
●● SAS/OR – Operations research
●● SAS/ETS – Econometrics and Time Series Analysis
●● SAS/IML – Interactive matrix language
The SAS University Edition includes the SAS products Base SAS®, SAS/
STAT®, SAS/IML®, SAS/ACCESS® Interface to PC Files, and SAS Studio. SAS
has an annual license fee and almost 98% return to SAS every year, voting by
their chequebook. All these products are Copyright © SAS Institute Inc., SAS
Campus Drive, Cary, North Carolina 27513, USA. (https://decisionstats.
com/2009/08/20/the‐top‐decisionstats‐articles‐part‐1‐analytics/and https://
en.wikipedia.org/wiki/SAS_(software))

1.1.1 Installation
While SAS Software for Enterprises is priced at an annual license, for students,
researchers and learners you can choose from the SAS University Edition
(a virtual machine) at https://www.sas.com/en_in/software/university‐edition.
html or SAS on Demand at https://odamid.oda.sas.com/SASLogon/login
(a software as a service running SAS in browser).
To install the SAS University Edition on your Virtual machine you can follow
the following steps (I am using VMware Workstation for this):
●● Run your Virtual Machine and click on file.
●● Open and select SAS University Edition (the extension of the file should
be .ova). You can provide a new name and storage path for your new Virtual
Machine and then import.
●● Now, you need to initially run the virtual machine and use the link provided
in the VM to connect to the SAS University Edition in your browser.

1.2 ­About R
R is a language and environment for statistical computing and graphics. It is
a GNU project which is similar to the S language and environment which was
developed at Bell Laboratories (formerly AT&T, now Lucent Technologies)
by John Chambers and colleagues. R can be considered as a different imple-
mentation of S. R was initially written by Robert Gentleman and Ross Ihaka.
About SAS and R 3

1.2.1 The R Environment


From https://www.r‐project.org/about.html, R is an integrated suite of soft-
ware facilities for data manipulation, calculation and graphical display. It
includes:
●● an effective data handling and storage facility,
●● a suite of operators for calculations on arrays, in particular matrices,
●● a large, coherent, integrated collection of intermediate tools for data
analysis,
●● graphical facilities for data analysis and display either on‐screen or on hard-
copy, and
●● a well‐developed, simple and effective programming language which includes
conditionals, loops, user‐defined recursive functions and input and output
facilities.
There are almost 14 000+ packages in R (https://www.rdocumentation.org).
You can also look at specific views of packages (https://cran.r‐project.org/web/
views is a task view like a bundle or cluster of packages with similar usage i.e.
econometrics). For computationally‐intensive tasks, C, C++ and Fortran code
can be linked and called at run time. Advanced users can write C code to
manipulate R objects directly.

1.2.2 Installation of R
You can download and install R from https://www.r‐project.org (or specifically
from https://cloud.r‐project.org for your operating system). You can then
download and install the IDE RStudio from https://www.rstudio.com/
products/rstudio/download/#download. Lastly, you can install any of 12 000+
packages (see https://cran.r‐project.org/web/views and https://www.
rdocumentation.org) using install.packages(“PACKAGENAME”) from
within R. These packages can be downloaded from the CRAN (Comprehensive
R Archive Network).
Within https://www.datacamp.com/community/tutorials/r‐packages‐guide,
R packages are collections of functions and datasets developed by the com-
munity. They increase the power of R either by improving existing base
R functionalities, or by adding new ones. For example, you can use sqldf
package to use SQL with R and RODBC package to connect to RDBMS
databases.
In addition, an excellent resource is how to learn SAS for R users from
the SAS Institute itself.
https://support.sas.com/edu/schedules.html?ctry=us&crs=SP4R
4 SAS for R Users

The e‐learning course is free as of October 2018. The course teaches


the following:
●● how to read and write SAS programs
●● import various forms of data
●● subset and merge data tables including using SQL (by the Proc SQL procedure)
●● carry out iterative processing and simulate new data
●● create new variables and functions
●● create and enhance plots of all types
●● apply descriptive and inferential procedures, including regression, logistic
regression, analysis of variance, stepwise model selection, and mixed models
●● conduct matrix algebra and statistical simulations in the interactive matrix
language (IML)
●● call R from SAS to use as a complimentary resource.

1.3 ­Notable Points in SAS and R Languages


1) Each line in SAS ends with; R does not have any such limitation
2) SAS is case insensitive – ozone and OZone are the same thing. R is case
sensitive.
3) In SAS comments are within /* */ (press Ctrl + /). In R comments follow #
4) SAS has two kinds of statements:
a) Data Step which deals with input, manipulation of data and

data ajay;
set input;
run;

b) Proc Step which are procedural steps for analysis and output.

proc contents data = ajay;


run;

R has functions and packages for similar functions bundled together


5) SAS needs a license for extra functionality (e.g., for Time Series you needed SAS
/ETS license) while R is free and extensible (forecast package for Time Series).

1.4 ­Some Important Functions with Comparative


Comparisons Respectively
A Proc by Proc comparison in SAS language with R language functions is
shown below. It will be explained in greater detail in later chapters. Some peo-
ple consider R’s smaller syntax helpful in coding while others consider SAS to
be easier to learn and focus on analysis instead.
About SAS and R 5

Function SAS R
Import data proc import read_csv (readr package)
Print data proc print ajay
data=ajay;
run;
Structure proc contents str(ajay)
of Data data=ajay;
Object run;
Frequency of proc freq data= table(ajay$var1,ajay$var2)
Categorical ajay;
Variables tables var1*var2;
(Cross run;
Tabulation)
Analysis of Proc means summary(ajay$var1,ajay$var2)
Numerical Proc means data=
Variables ajay; library(Hmisc)
without/ Var var1 var2; summarize(ajay$var1,ajay$grp
with Run; 1,summary)
grouped by
another Proc means summarize(ajay$var1,ajay$grp
variable daya=ajay; 1,summary)
Var var1 var2;
Class grp1;
run;

1.5 ­Summary
In this chapter we have introduced R and SAS languages, and briefly compared
their main functions/syntax.

1.6 Quiz Questions


1 Who is the CEO of SAS?

2 When was SAS founded?

3 Where was SAS founded?

4 Who designed R?

5 When was R founded?

6 Where was R founded?


6 SAS for R Users

7 Which of the two languages has a better documentation and customer


support?

8 TASK: Suppose you know SQL. Can you identify functions or packages you
can use in SAS and R respectively to run SQL commands?

Quiz Answers
1 JAMES GOODNIGHT

2 1976

3 NORTH CAROLINA STATE UNIVERSITY

4 ROSS IHAKA AND ROBERT GENTLEMAN

5 1993

6 UNIVERSITY OF AUCKLAND

7 SAS

8 IN SAS: use proc. sql, IN R: use sqldf package.


7

Data Input, Import and Print

2.1 ­Importing Data
Importing data is the first step in analyzing data. It is important that you
have reliable and relevant data. You should be able to import data correctly
because the computer processes what data you input. If the imported data is
faulty, the analysis that you will receive after performing various tasks on it will
also be erroneous and misleading.
This concept is also commonly known as GIGO (Garbage In Garbage OUT).
Therefore, the input step is one of the most important steps in the data science
pipeline. There could also be different ways to input data in R and SAS from
files or from data connections. Importing of datasets calls for certain functions
in R whereas it calls for certain procedures for the same in SAS.

2.1.1 Packages in R
Importing of data in R can be done using certain packages and functions, and
to use those packages, we need to install them in our application.
Installing a package has the following command in R:

install.packages(“package_name”)

After installation to use this package you must load that package. Loading
a package means getting the package in active state (session). To load a
package use:

library(“package_name”)

SAS for R Users: A Book for Data Scientists, First Edition. Ajay Ohri.
© 2020 John Wiley & Sons, Inc. Published 2020 by John Wiley & Sons, Inc.
8 SAS for R Users

Updating a package:

update.packages(“package_name”)

Note that we install the package only once, we update it occasionally and we
load it every time we begin a R session. To unload a package, we use:

detach.packages(“package_name”)

To uninstall a package we use:

uninstall.packages(“package_name”)

2.2 ­Importing Data in SAS


Here we study multiple ways to input data.
In SAS to save space you can put this in the beginning options
compress = yes;

2.2.1 Data Input in SAS


Data Input in SAS manually has been an easy task, and there are a certain set
of examples where you can easily learn how to input data in SAS.
The INPUT statement reads raw data from instream data lines or external
files into a SAS dataset. Data input is the first step for every analysis, without
any dataset or data there can be no analysis of any kind. Data input can be done
in various forms. Let’s look at a few examples of data input in SAS.
In the examples given below, we have input normal numerical data, strings,
names etc.

data first;
infile datalines
input m n;
datalines;
5 10
10 20
20 40
;
run;
Data Input, Import and Print 9

The code above creates a dataset named first.


●● infile statement is used to specify the type of data to be read.
●● input statement is used to specify the names, number and type of variables
being read.
●● datalines statement is used to specify that the following lines contain the
data to be read.
●● The keyword “cards” can also be used instead of “datalines.”

data second;
infile datalines
input name$ points;
datalines;
ajay 10
kush 9
;
run;

data third;
infile datalines missover dsd;
input m n o;
,2,3
4,,6
7,8,9

●● $ sign is used to specify that the variable it follows is a character variable


●● Missover option is used to prevent the data step from going to the next line
if it does not find values for all variables in the input statement in the current
record.
●● dsd option is used to treat commas as separator characters.
Code to import in SAS is different from R because in R we use functions
whereas in SAS we generally call procedures. R is an object‐oriented
language.
Using the Import Wizard is an easy and straightforward way to import exist-
ing data with well‐behaved formatting into SAS. There are other methods for
importing data into SAS like proc. import, or even entering raw observations
into SAS itself to create a new dataset.
These methods of importing or creating data can give you greater control
over how to read variables (the informats), how to write the variables
(the formats), how to parse the data (delimited, aligned, repetition, etc.),
and more.
10 SAS for R Users

2.2.2 Using Proc Import to Import a Raw File

proc import out=dataset_name


DBMS= file_type
datafile= ‘file_path’;
getnames=yes;
run;

Here we use the proc. import step to import a raw data file and save it as an
SAS dataset. DBMS is used to specify the file type, e.g.: CSV, XLS etc.
getnames = yes is to specify that the first row contains column names.
Note: The type of dataset created (temporary or permanent) depends on the
name you specify in the out = statement.
A permanent dataset has to be referenced by a two‐level name: ‐ library_
name.data_set_name whereas a temporary dataset just has a one‐level
name.

2.2.3 Creating a temporary dataset from a permanent


one using “set”

data temp_setname;
set libname.permaset_name;
run;

2.3 ­Importing Data in R
There are a number of ways to import data into R, and several formats are
available:
1) From CSV files using readr or data. Table package
2) From Excel to R
3) From SAS to R
4) From SPSS to R
5) From Stata to R, and more
6) From Relational Databases (RDBMS) using RODBC
7) From json files using jsonlite package
https://rforanalytics.wordpress.com/useful‐links‐for‐r/odbc‐databases‐for‐r
Let us explore some of the ways to import data in R.
Data Input, Import and Print 11

2.3.1 Importing from Comma Separated Value (CSV) Files


There are three functions which can be used to import csv files in R:
1) read.csv() or read. Table() which are in the utils package which is installed
and loaded by default.

read.csv("file_path.csv") or read.table("file_path.csv")

2) read_csv which is in the readr package.


install.packages("readr")
library("readr")

read_csv("file_path.csv")

3) fread() which is in the data. Table package.


install.packages("data.table")
library("data.table")

fread("file_path.csv")

fread and read_csv are the fastest of all these.

You can use the system. Time() function to verify that as follows:

system.time(read.csv("file_path.csv"))
system.time(read_csv("file_path.csv"))

system.time(fread("file_path.csv"))

2.3.2 Importing from Excel Files


We need to install readxl package and use the read_excel function to import
.xls or .xlsx types of files.

install.packages("readxl")
library("readxl")

read_excel("file_path.xls")
12 SAS for R Users

Example: To import sheet 1 of an excel file with the first row as column
names

read_excel("MySpreadSheet.xls", sheet=1, col_names=TRUE)

We can also use sheet names put within double quotes instead of the sheet
number to specify the sheet we want from any excel file.

2.3.3 Importing from SAS


read.sas7bdat() from sas7bdat package is used to import .sas7bdat
files

install.packages("sas7bdat")
library("sas7bdat")
read.sas7bdat("file_path.sas7bdat")

2.3.4 Importing from SPSS and STATA


We use the read.spss () and read.dta() function from foreign package to import
SPSS and STATA files respectively.

install.packages("foreign")
library("foreign")
read.spss("file_path.spss")
read.dta("file_path.dta")

2.3.5 Assigning the Values Imported to a Data Object in R


Assigning in R has the following syntax:

objectname=value;
or
objectname <‐ value;

The following code is used to assign the imported file to an object.

objectname=read_csv("file_path",parameters)
Data Input, Import and Print 13

Similarly, data read using other functions can be assigned to R objects.


Note: Each of the functions used to import data discussed above take in
more parameters which define certain formatting to be done on the data while
importing.
To manually input we use the following

> ajay=c(11,2,30)
> ajay
[1] 11 2 30

We can do the same for other types of data except string variables which will
be in quotes (i.e. “ten”)

2.4 ­Providing Data Input


We can also create datasets, vectors or matrices by using the input value given
by us.

2.4.1 Data Input in R


2.4.1.1 Using the c() function is the simplest way to create a list in R
We can input numerical, dates and string values as follows:

ajay=c(10,20,30,40)
dates2=c("26jun98","1/09/2005","1January2016")
newone=c("Raj","Shiva","Kamal","Ajay")

2.4.1.2 Providing missing values to the vector


NA in R signifies missing values (in SAS a missing value is denoted by a single
period.)

ajay2=c(23,45,78,NA,NA,89,NA)

is.na(ajay2)
## [1] FALSE FALSE FALSE TRUE TRUE FALSE TRUE

is.na() function is used to detect missing values in the vector.


14 SAS for R Users

2.4.1.3 To Input multiple columns of data

ajay3=data.frame(c("a","b"),c(1,2))

This creates a data frame with two columns as follows:

a 1
b 2

or, we can create a matrix using:

my_matrix = matrix(
c(2, 4, 3, 1, 5, 7),
nrow=3,
ncol=2)

This code makes a matrix with values in c() arranged in three rows and two
columns arranged column wise. Note: vector and matrix must have all values
of the same type but data frames can have values of different types.

2.4.1.4 Using loops to input

ajay=NULL
for (i in 1:20) {
ajay[i]=i}
print(ajay)

Output

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2.5 ­Data Input in SAS


Data Input in SAS manually has been an easy task, however, there are a certain
set of examples where you can easily learn how to input data in SAS.
The INPUT statement reads raw data from instream data lines or external
files into an SAS dataset. Data input is the first step for every analysis; without
any dataset or data there can be no analysis of any kind. Data input could be
done in various forms lets see few examples of data input in SAS.
In the examples given below, we have input normal numerical data, strings,
names etc.
Data Input, Import and Print 15

data first;
infile datalines
input m n;
datalines;
5 10
10 20
20 40
;
run;

This code creates a dataset named first.

infile statement is used to specify the type of data to be read.


input statement is used to specify the names, number and type of variables
being read.
datalines statement is used to specify that the following lines contain the data
to be read.
The keyword “cards” can also be used instead of “datalines.”

data second;
infile datalines ;
input name$ points;
datalines;
ajay 10
kush 9
;
run;

$ sign is used to specify that the variable it follows is a character variable

data third;
infile datalines missover dsd;
input m n o;
datalines;
,2,3
4,,6
7,8,9
;
run;

Missover option is used to prevent the data step from going to the next line
if it does not find values for all variables in the input statement in the current
record. Here the dsd option is used to treat commas as separator characters.
16 SAS for R Users

2.6 ­Printing Data
After importing the data, the next important step is to print that data to have a
look at the type of data you now have to analyze.

2.6.1 Print in SAS


Printing the dataset in SAS involves calling the print procedure in SAS.
The code below will help you print the whole dataset named ajaydat.

proc print data=ajaydat;

run;

The code below will help you print the first five observations of the dataset
named ajaydat.

proc print data=ajaydat(obs=5);

run;

The code below will help you print the observations ranging from 10 to 20
for dataset ajaydat.

proc print data=ajaydat(firstobs=10 obs=20)

run;

2.6.2 Print in R
In R, printing of data does not need any function or package. You simply write
the dataset name and then run it to print the data.
If you read data in mydata and write the data_set name:
The whole data in mydata will be printed at console.

mydata=read_csv("file_path")
mydata
Data Input, Import and Print 17

Only the first observation of mydata is printed to the console. Default value
of n is 6.

head(mydata,n)

Observations ranging from 10 to 20 would be displayed.

mydata[10:20]

2.7 ­Summary
Importing data in R requires a variety of functions to import different types of
files whereas proc. import is used with different options or parameters to
import any type of file in SAS. Data input in R is done using the c() function
and using a data step with input option in SAS. In R, printing a dataset just
requires the writing of the name of the dataset and running it, whereas SAS
uses proc. print to print any dataset.

2.8 Quiz Questions


1 How will you load an installed package in R?

2 Give three functions which can be used to import csv files in R.

3 Which package contains read_csv() and fread() respectively?

4 Which function in R can you use to measure the time taken by a code to
execute?

5 Which procedure in SAS is used to import raw data files?

6 How can you create a temporary dataset from a permanent one in SAS
using a data step?

7 Which wildcard is used to specify that a particular variable is a character


variable in SAS?

8 What is the missover option used for in the infile statement in a SAS data
step?
18 SAS for R Users

9 How will you print a data set in R?

10 Which procedure is used to print a data set in SAS?

Quiz Answers
1 library(“package_name”)

2 read_csv(),fread(),read.csv()

3 readr, data.table

4 system.time()

5 proc. import

6 data temp_setname; set libname.permaset_name; run;

7 $

8 Missover tells SAS not to jump to the next line if it does not find values for
all variables. We just type the name of the dataset and run it to print a data
set in R.

9 Just type the name of object

10 proc print
19

Data Inspection and Cleaning

3.1 ­Introduction
Data Cleaning and Inspection is the next important part of the data analysis
pipeline. It implies that before starting analysis, visualization or machine learn-
ing and its insights, you should have cleaned any data that has to be analyzed.
Though Machine Learning, Exploratory Data Analysis and Data Visualization
take up more time in analytical education, in an actual data science project
much more time is spent in data inspection and cleaning.

3.2 ­Data Inspection
Data inspection helps us determine that data import has been executed
­correctly, that variables are in same length (rows) and breadth (columns) and
that variables (columns) are in the same format as expected.

3.2.1 Data Inspection in SAS


Let’s try this in SAS
●● Referring to a column is easier in SAS than in R

/* Refer to a column by using var in proc and keeping it by keep in data step*/
data import4 (keep=ozone2);
set import3;
run;

Creating a new variable which is twice the size of target column


data import4;
set import4;
ozone3=2*ozone2;
run;

SAS for R Users: A Book for Data Scientists, First Edition. Ajay Ohri.
© 2020 John Wiley & Sons, Inc. Published 2020 by John Wiley & Sons, Inc.
20 SAS for R Users

Printing only that variable by using var (which is also used in other Procs)
proc print data=import3 (obs=5);
var ozone2;
run;

●● Referring to a row is more complex in SAS than R

proc print data=import3 (obs=7);


run;

Obs Wind Temp Month Day Ozone2 Solar_R2 var2


1 7.4 67 5 1 41.0000 190.000 .
2 8 72 5 2 36.0000 118.000 .
3 12.6 74 5 3 12.0000 149.000 .
4 11.5 62 5 4 18.0000 313.000 .
5 14.3 56 5 5 35.3017 185.932 .
6 14.9 66 5 6 28.0000 185.932 .
7 8.6 65 5 7 23.0000 299.000

Using a do loop for getting certain rows

data output1;
do i = 1, 3, 4, 7;
set import3 point = i;
output;
end;
stop;
run;

proc print data=output1;


run;

Obs Wind Temp Month Day Ozone2 Solar_R2 var2


1 7.4 67 5 1 41 190 .
2 12.6 74 5 3 12 149 .
3 11.5 62 5 4 18 313 .
4 8.6 65 5 7 23 299 .

3.2.2 Data Inspection in R


●● head gives first 6 values
●● names give names of columns
●● dim gives dimensions (row column)
●● str gives structure (type of variables, variable names, dimensions) type of
data object
●● class gives type of data object (which is important in R as it can be many
different types of object)
●● summary gives a summary of the whole object including numerical analysis,
presence of missing values and frequencies of factor variables.
> data(airquality)
> head(airquality)
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
> names(airquality)
[1] "Ozone" "Solar.R" "Wind" "Temp" "Month" "Day"
> dim(airquality)
[1] 153 6
> str(airquality)
'data.frame': 153 obs. of 6 variables:
$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...
$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...
$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...
$ Month : int 5 5 5 5 5 5 5 5 5 5 ...
$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

>class(airquality)
[1] "data.frame"
> summary(airquality)
Ozone Solar.R Wind Temp Month Day
Min. : 1.00 Min. : 7.0 Min. : 1.700 Min. :56.00 Min. :5.000 Min. : 1.0
1st Qu.: 18.00 1st Qu.:115.8 1st Qu.: 7.400 1st Qu.:72.00 1st Qu.:6.000 1st Qu.: 8.0
Median : 31.50 Median :205.0 Median : 9.700 Median :79.00 Median :7.000 Median :16.0
Mean : 42.13 Mean :185.9 Mean : 9.958 Mean :77.88 Mean :6.993 Mean :15.8
3rd Qu.: 63.25 3rd Qu.:258.8 3rd Qu.:11.500 3rd Qu.:85.00 3rd Qu.:8.000 3rd Qu.:23.0
Max. :168.00 Max. :334.0 Max. :20.700 Max. :97.00 Max. :9.000 Max. :31.0
NA’s :37 NA’s :7

> class(airquality)
[1] "data.frame"
22 SAS for R Users

We can choose specific parts of a data frame by using square brackets, i.e.
●● airquality [2,3] gives data in second row and third column of airquality
●● airquality [2,] gives data in second row and all columns of airquality
●● airquality [,3] gives data in all rows and third column of airquality
●● airquality [R,C] gives data in Rth row and Cth column of airquality
airquality$Ozone gives value of Ozone column in airquality

3.3 ­Missing Values
Data that is missing can be due to human data input error, formatting issues or
incorrect coding syntax for import. It is a problem because we cannot have
analysis without data.
There are three ways to handle missing data:
1) Ignore it
2) Delete it
3) Replace it – Replace with a value that does not change the numerical prop-
erties significantly. Missing value imputation is the name given to replacing
missing data. At its simplest form we replace missing values by either mean
or median data. At its more sophisticated form, we use correlation from
other variables that are more complete to impute them. We can also use
machine learning algorithms to impute data from other variables. Specific
packages like mice package in R help with more sophisticated missing value
imputation.

3.3.1 Missing Values in SAS

File Import
FILENAME REFFILE '/home/ajay4/book/airquality.csv';

PROC IMPORT DATAFILE=REFFILE


DBMS=CSV
OUT=WORK.IMPORT;
GETNAMES=YES;
RUN;

Finding variable type. To our surprise many variables have been encoded as
string variables in SAS which were encoded as numeric in R. This is due to NA
being a character value in SAS but missing values in R. In SAS missing values are
denoted by a single period.
Data Inspection and Cleaning 23

PROC CONTENTS DATA=WORK.IMPORT; RUN;

Alphabetic List of Variables and Attributes


# Variable Type Len Format Informat
7 Day Num 8 BEST12. BEST32.
6 Month Num 8 BEST12. BEST32.
2 Ozone Char 2 $2. $2.
3 Solar.R Char 3 $3. $3.
5 Temp Num 8 BEST12. BEST32.
1 VAR1 Char 4 $4. $4.
4 Wind Num 8 BEST12. BEST32.

Let’s print the first six rows of data (similar to head function in R)
proc print data =import (obs=6);
run;

Obs VAR1 Ozone Solar.R Wind Temp Month Day


1 1 41 190 7.4 67 5 1
2 2 36 118 8 72 5 2
3 3 12 149 12.6 74 5 3
4 4 18 313 11.5 62 5 4
5 5 NA NA 14.3 56 5 5
6 6 28 NA 14.9 66 5 6

Let's replace NA in SAS

If we had to replace NA in just one variable, we can use


compress

data import2;
set import;
Ozone=compress(Ozone,"NA","");
Run;

proc contents data=import2;


run;

However, if we wanted to replace it in all character variables, we use an SAS


function called array with a ‘for’ loop and an ‘if’ statement. We convert ­character
variable one by one into numeric variables and drop the original. A point to note
is to avoid a dot in variable names in SAS. Drop is used in SAS to drop a certain
variable in the SAS dataset.
data import2;
set import;

array Chars[*] _character_;


do i = 1 to dim(Chars);

Chars[i] = strip(Chars[i]);
if Chars[i] = "NA" then Chars[i] =. ;
end;
drop i;
24 SAS for R Users

Ozone2=input(Ozone,2.);
drop Ozone ;

Solar_R2=input(SolarR,3.);
drop SolarR ;
var2=input(VAR1,8.);
drop VAR1 ;
run;

proc means data=import2 n nmiss mean;


run;

Using nmiss we can find and ignore the missing values in proc means (­similar to
na.rm. = T in R)

The MEANS Procedure

Variable N N Miss Mean

Wind 153 0 9.9575163


Temp 153 0 77.8823529
Month 153 0 6.9934641
Day 153 0 15.8039216
Ozone2 116 37 35.3017241
Solar_R2 146 7 185.9315068
var2 0 153

Suppose we ran the same Proc Means procedure but without nmiss, we will not
see the missing values (is.na = T in R).

The MEANS Procedure

Variable Mean

Wind 9.9575163
Temp 77.8823529
Month 6.9934641
Day 15.8039216
Ozone2 35.3017241
Solar_R2 185.9315068
var2
Data Inspection and Cleaning 25

But for character variables and others there is the following representation:

Missing Values Representation in Data

Numeric . (a single point)


Character ′ ′ (a blank enclosed in quotes)

For replacing a missing value in a character variable you can use:


if var=' ' then do;

To simply omit all missing values (like na.omit in R) we use the following SAS
code:
data import21;
set import2;
if Ozone2=. then delete;
run;

proc means data=import21 n nmiss mean;


Run;

You can see a few rows that also had solar_R2 have been deleted. Therefore, we
need to be careful about explicit deletion.

The MEANS Procedure

Variable N N Miss Mean

Wind 116 0 9.8620690


Temp 116 0 77.8706897
Month 116 0 7.1982759
Day 116 0 15.5344828
Ozone2 116 0 35.3017241
Solar_R2 111 5 184.8018018
var2 0 116
26 SAS for R Users

To replace missing values with the mean of the variable you can use the
following:
proc stdize data=import2 reponly method=mean out=import3;
var ozone2 solar_r2;
Run;

proc print data=import2 (obs=6);


var ozone2 solar_r2;
run;
Obs Ozone2 Solar_R2
1 41 190
2 36 118
3 12 149
4 18 313
5 . .
6 28 .
proc print data=import3 (obs=6);
var ozone2 solar_r2;
run;

Obs Ozone2 Solar_R2


1 41.0000 190.000
2 36.0000 118.000
3 12.0000 149.000
4 18.0000 313.000
5 35.3017 185.932
6 28.0000 185.932

3.3.2 Missing Values in R


Let’s do this in R
> data(airquality)
> summary(airquality)
Ozone Solar.R Wind Temp Month Day
Min. : 1.00 Min. : 7.0 Min. : 1.700 Min. :56.00 Min. :5.000 Min. : 1.0
1st Qu.: 18.00 1st Qu.:115.8 1st Qu.: 7.400 1st Qu.:72.00 1st Qu.:6.000 1st Qu.: 8.0
Median : 31.50 Median :205.0 Median : 9.700 Median :79.00 Median :7.000 Median :16.0
Mean : 42.13 Mean :185.9 Mean : 9.958 Mean :77.88 Mean :6.993 Mean :15.8
3rd Qu.: 63.25 3rd Qu.:258.8 3rd Qu.:11.500 3rd Qu.:85.00 3rd Qu.:8.000 3rd Qu.:23.0
Max. :168.00 Max. :334.0 Max. :20.700 Max. :97.00 Max. :9.000 Max. :31.0
NA's :37 NA's :7
28 SAS for R Users

We see the mean and then check for mean with missing values ignored using
na.rm. = T. We also check for total missing values by is.na. In R, as we have
mentioned, missing values are given by NA

> mean(airquality$Ozone)
[1] NA

Using na.rm+T we ignore missing values (in R they are NA in SAS


they are . )
> mean(airquality$Ozone,na.rm=T)
[1] 42.12931

> table(is.na(airquality))
FALSE TRUE
874 44

We can delete all missing values by na.omit

> airquality2=na.omit(airquality)

> str(airquality)

'data.frame': 153 obs. of 6 variables:


$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...
$ Solar.R : int 190 118 149 313 NA NA 299 99 19 194 ...
$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...
$ Month : int 5 5 5 5 5 5 5 5 5 5 ...
$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

> str(airquality2)

'data.frame': 111 obs. of 6 variables:


$ Ozone : int 41 36 12 18 23 19 8 16 11 14 ...
$ Solar.R : int 190 118 149 313 299 99 19 256 290 274 ...
$ Wind : num 7.4 8 12.6 11.5 8.6 13.8 20.1 9.7 9.2 10.9 ...
$ Temp : int 67 72 74 62 65 59 61 69 66 68 ...
$ Month : int 5 5 5 5 5 5 5 5 5 5 ...
$ Day : int 1 2 3 4 7 8 9 12 13 14 ...
‐ 
attr(*, "na.action") = 'omit' Named int 5 6 10 11 25 26 27
32 33 34 ...
..‐ attr(*, "names") = chr "5" "6" "10" "11" ...

We can use a conditional operator to replace missing values by median. In


the ifelse operator, the first part is condition, the second part is if condition is
true and the third part is if condition is false. We put the condition as is.na
Data Inspection and Cleaning 29

(which checks for missing value). If is.na is true, it indicates data is missing
value then we replace it by median of variable (ignoring missing values) and if
is.na is false we do not replace data but keep the original value. This is similar
to proc stdize

> data("airquality")

> summary(airquality$Ozone)

Min. 1st Qu. Median Mean 3rd Qu. Max. NA's


1.00 18.00 31.50 42.13 63.25 168.00 37

> airquality$Ozone=ifelse(is.na(airquality$Ozone),
median(airquality$Ozone,na.rm = T),airquality$Ozone)

> summary(airquality$Ozone)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 21.00 31.50 39.56 46.00 168.00

3.4 ­Data Cleaning
Here we try and clean various types of errors in a data type in both SAS and R.

3.4.1 Data Cleaning in SAS


We have input the data in our first step to clean the Data. SAS code to omit this
type of errors and create a useful dataset for the purposes of analysis.

We first input data using the SAS datalines way (corresponds to R’s c operator
for a list).
data money;
infile datalines ;
input name$ ;
datalines;
'50000'
'50,000'
'$50000'
50000
'50000'
'50000.00'
;

run;
30 SAS for R Users

We check if data was input correctly using proc print


proc print data=money;
run;

Note /* test*/ shows a comment in SAS just like #test shows a comment in R
/* Obs name */
/* 1 '50000' */
/* 2 '50,000' */
/* 3 '$50000' */
/* 4 50000 */
/* 5 '50000.0 */

Here we use the compress function to get rid of junk values, $ ‘(just like gsub in R).
We also use the input function to convert character to numeric value just as we
did as.numeric function in R.
However, in SAS we have to specify format and informats to convert data types
from one to another. In R, we use lubridate, stringr package, and the as operator
to do so.
data money2;
set money;
name2=compress(name,",$'");
name3 = input(name2,6.);
run;

Proc contents is like str in R to check data


proc contents data=money2;
run;

Proc means is like summary in R (however we can specify only one var by using
the var argument in SAS whereas in R we can use the $operator for single
variables
proc means data=money2;
var name3;
run;

The output shows our data cleaning was successful.

The MEANS Procedure

Analysis Variable: name3


N Mean Std Dev Minimum Maximum
6 50 000.00 0 50 000.00 50 000.00
Data Inspection and Cleaning 31

3.4.2 Data Cleaning in R

> money=c('50000','50,000','$50000',50000,'50000.00')

> mean(money)
[1] NA
Warning message:
In mean.default(money) : argument is not numeric or logical:
returning NA

> str(money)
chr [1:5] "50000" "50,000" "$50000" "50000" "50000.00"

> money=gsub(',',",money)
> money
[1] "50000" "50000" "$50000" "50000" "50000.00"

> money=gsub('\\$',",money)
> money
[1] "50000" "50000" "50000" "50000" "50000.00"

> money=as.numeric(money)
> money
[1] 50000 50000 50000 50000 50000

> mean(money)
[1] 50000
> str(money)
num [1:5] 50000 50000 50000 50000 50000

Using the gsub package in R, it is easy to clean Data just as we used compress
in SAS. We have created a different variable every time we replace to avoid the
actual data to being lost and/or changed. Data cleaning is quite a simple pro-
cess in both R and SAS thanks to the inbuilt functions as well as documenta-
tion. What adds to the complexity is the volume and variety of the data both
Big and Small. You can also see data cleaning is an intensive manual task as
data errors can be of many types. It is estimated that out of many data science
projects as much as 80% of time is spent on data hygiene.

3.5 Quiz Questions


1 How do you represent missing values in SAS?

2 How do you represent missing values in R?


32 SAS for R Users

3 How will you replace a missing value by mean in R?

4 How will you replace a missing value by mean in SAS?

5 How will you clean data with junk values like $ and , in R?

6 How will you clean data with junk values like $ and , in SAS?

7 How do you check variable types in SAS?

8 How do you check variable types in R?

9 How do you print only variable in SAS?

10 How do you print only variable in R?

Quiz Answers
1 X.

2 NA.

3 Using ifelse

4 proc stdize

5 gsub

6 compress

7 proc contents

8 str

9 Use var in proc print like

proc print data=datasetname;


var variablename;
run;

10 Use $ operator like

datasetname$variablename
33

Handling Dates, Strings, Numbers

So far, we have learnt how to import data and create your own data in R and
SAS, along with data inspection and cleaning. Here, we will learn how to work
with different kinds of data, for example, dates, strings and numbers and how
to convert one data format to another in both R and SAS. This includes han-
dling numeric data, manipulating string/character variables (i.e. by extracting
a substring of a string variable), handling different types of date format and
numeric calculations with dates (i.e. difference between dates) as well as cate-
gorical data.

4.1 ­Working with Numeric Data


Integral types represent only whole numbers (positive, negative, and zero), and
nonintegral types represent numbers with both integer and fractional parts.

4.1.1 Handling Numbers in SAS


Assigning Numeric Values to Variables

data ajay2;
a="1234567";
Run;

proc print data=ajay2;


Run;
Obs a
1 1234567

We multiply the character variable by 1 to try to make it numeric in SAS.

SAS for R Users: A Book for Data Scientists, First Edition. Ajay Ohri.
© 2020 John Wiley & Sons, Inc. Published 2020 by John Wiley & Sons, Inc.
Another random document with
no related content on Scribd:
één woord, de vermaaken die te Muiderberg genoten worden zijn te talrijk
om ze allen te beschrijven, en te vol gewoel om er een wèl geordend
tafreel van te ontwerpen; allen helpen zij intusschen, zo als wij reeds
zeiden, den bloei van het plaatsjen niet weinig bevorderen.

’T is omtrent deeze plaats, omtrent dit dorpjen, dat, naar ’t gevoelen van
eenigen, Graaf Floris de Vijfde, door de zamengezworenen is
omgebragt; (zie onze beschrijving van Naarden, Art. Geschiedenissen,) ’t
geen anderen, doch verkeerdlijk, willen, dat op het Muiderslot zoude
geschied weezen, ’t geen echter van de beste Historieschrijvers wordt
tegengesproken, in navolging van welken de Puik-dichter Antonides van
der Goes, in zijnen Y-stroom, bladz. 108, ook zegt:

Toen Velzen, zoet op wraak, met zijne vloekgenooten,


Den Graaf, zijn’ wettig Vorst, den dolk in ’t hut dorst stooten,
En Gooiland verwen met het bloed van zijnen Heer.

Woorden die allerduidelijkst te kennen geeven dat, volgends [4]den Dichter,


’s Graaven bloed den Gooischen bodem, (niet den grond van deeze of
geene kamer in het Muiderslot,) geverwd heeft.

NAAMSOORSPRONG.

De naamsoorsprong van Muiderberg, wordt voegelijk afgeleid, (ook is er


geene andere bedenking over te maaken,) van de daar nabij gelegene
stad Muiden, en de naastaanliggende hoogte; welke, voor zo verre die
waarop het dorp ligt betreft, en met betrekking tot de doorgaande vlakke
eigenschap van ons Land, den naam van berg verkregen heeft, als vrij
hoog zijnde, en boven allen die rondsom liggen uitsteekende; deeze
hoogte, of berg, nu (bij Muiden liggende,) zal dan den naam van berg van
Muiden of Muiderberg verkregen hebben, en voords het Dorp ook met dien
naam benoemd weezen.

STICHTING en GROOTTE.
Wie Muiderberg eigenlijk gesticht of aangelegd zoude hebben, daarvan
zijn geene bescheiden voorhanden: oud moet het zekerlijk zijn, uit
aanmerkinge van den reeds gemelden Giftbrief van Graave Willem van
Henegouwen, geschreven in den jaare 1324; want daarin wordt het, gelijk
wij gezien hebben, reeds gespeld.

Wat de grootte betreft, volgends de lijsten der verpondingen van den jaare
1632, stonden er toen 34 huizen, doch honderd jaaren laater, in 1732,
bedroeg dat getal niet meer dan 28 huizen; weshalven het in de gezegde
honderd jaaren, 6 huizen verminderd is; thans zijn er weder 6 minder,
naamlijk slechts 22, het welk zeer ligtlijk het geval van dergelijke, schoon
bloejende, dorpjens kan worden, want die bloei bestaat gemeenlijk in niet
meer dan in eene genoegzaame broodwinning der bewooneren, ofschoon
het daarom anderen, elders woonende, niet geraaden zij, zig aldaar met er
woon te komen nederslaan, alzo zij welligt alles wat zij nog hadden
verteerd zouden hebben, [5]aleer zij gelegenheid kreegen om door hun
toedoen den bloei des dorpjens te vermeerderen, en derhalven zig zelven
in eenen bloejenden staat te bevinden.

Men schat het getal der inwooneren op omtrent 200, die, uitgenomen
eenige weinige Roomschgezinden, allen van den Gereformeerden
Godsdienst zijn.

Het schatbaar land onder het district van Muiderberg behoorende, wordt
begroot op niet meer dan honderd en vijftig morgen.

Een wapen heeft dit dorpjen niet.

KERKLIJKE en GODSDIENSTIGE GEBOUWEN.

Dit Artijkel van ons plan betreffende kunnen wij, het tegenwoordige
dorpjen aangaande, niet anders noemen dan de kerk, want Wees- of
andere Gods-dienstige Gestichten zijn er niet voorhanden: de Weezen
worden er bij de inwooners besteed.
Van binnen is de kerk zeer zindelijk, doch ook zeer eenvoudig, hebbende
volstrekt niets dat men kan zeggen een cieraad te weezen; ook is er geen
orgel in.

Derzelver vertooning van buiten, maakt zeer geloofwaardig het geen men
er van aangetekend vindt, naamlijk dat het nog de capel zoude zijn welke
de Roomschen in vroegere eeuwen aldaar gehad hebben; zij heeft in alles
de gedaante van een capel, vooral van vooren; men gaat tot den ingang,
(er is ook maar één ingang aan) door een laantjen van boomen, waar
achter het bovenste gedeelte van de kerk zig verbergt: men wil dat dit
gebouw gesticht zoude weezen, door den reeds meergemelden Graaf
Willem van Henegouwen, de derde van dien naam; doch, en het geen
van zelf spreekt, als eene capel, welke bij de Reformatie van binnen tot
het oefenen van den Gereformeerden Godsdienst is toebereid.

Thans staat op het gebouw een vierkante toren, zijnde van boven geheel
plat; evenwel is dezelve zodanig niet altoos geweest; er heeft, zelfs nog in
de tegenwoordige eeuw, [6]een spits op gestaan, doch hetzelve is er door
een’ stormwind afgewaaid, en sedert is er geen ander spits op gezet.

Niettegenstaande de gemeente te Muiderberg altijd slechts bestaan hebbe


uit omtrent 50 ledemaaten, heeft zij echter sinds het jaar 1687, haar eigen
Predikant, zijnde sedert 17 Augustus, van den jaare 1783, de Wel-Eerw.
en bij zijne gemeente zeer geliefde Heer, Kristiaan Johan Fruitier,
behoorende onder de Classis van Amsteldam.

De eerste Predikant alhier was Nicolaas Bassecour, bevestigd den 17


Augustus 1687, en hem werdt den 13 October van het zelfde jaar, één
Kerkraad, één Ouderling, en één Diacon toegevoegd, door een commissie
uit de Classis van Amsteldam: in het jaar 1698, is zijn Wel-Eerw. beroepen
te Schiedam—Voords hebben de volgende Predikanten alhier gestaan:

Geerard Midlum, is bevestigd den 27 April 1698, en beroepen te ’s


Graaveland 1706.

Petrus de Bye, is bevestigd den 30 Mei 1706, en hier overleden, den 14


Julij 1726.
Roeland van Thiel, is bevestigd den 2 Febr. 1727, en heeft van zijnen
dienst vrijwillig afgestaan 1747.

Jan Rijser, is bevestigd den 28 Jan. 1748, en emeritus geworden in Sept.


1780.

Carolus Pantekoek, is bevestigd den 29 April 1781, en op collatie


vertrokken naar Niërvaart, gezegd de Klundert.

De Pastorie is een vrij goed, en aangenaam gelegen gebouw.

Het Schoolhuis voldoet mede allezins aan deszelfs oogmerk.

WERELDLIJKE GEBOUWEN.

Onder dit artijkel kunnen wij niet anders brengen, dan het Rechthuis, dat
voor 3 jaaren een ruime Herberg was; doch sedert in een schoone lusthof
is veranderd. [7]

KERKLIJKE REGEERING.

Deeze bestaat sedert den 14 November, 1687, uit den Predikant, 2


Ouderlingen en 2 Diaconen.

Er zijn ook 2 Kerkmeesteren, die, in gevalle van afsterven, door Schout en


Schepenen verkozen worden.

WERELDLIJKE REGEERING.

Deeze is als op de andere dorpen van Gooiland: de Hooge Vierschaar


wordt er gespannen door den Bailluw en de Schepenen van Gooilands
Hoofdstad, Naarden, de Civile rechtbank wordt gespannen door Schout en
Schepenen, zijnde deeze laatsten vijf in getal.

Voords zijn alhier mede twee Buurtmeesters en twee Kerkmeesters: van


den eerstgemelden gaat jaarlijks één af.
De Schepens worden verkozen door den Bailluw, uit een nominatie van
een dubbeld getal, gemaakt door den Schout en Buurtmeesters: aan de
nieuw verkozene Schepenen staat de verkiezing van den Buurtmeester,
die voor dat jaar aankomt; zie boven.

Voorrechten heeft Muiderberg, voor zo verre ons bewust is, niet.

De

BEZIGHEDEN

Der bewooneren, zijn meestal de landbouw, waartoe zij, gelijk wij hiervoor
reeds zeiden, goede gelegenheid hebben: het zaajen van boekwijt en
rogge, en het pooten van aardappelen, gaat er zeer sterk: voords vindt
men er eenigen van die werklieden welken in de burgerlijke zamenleving
volstrekt onontbeerelijk zijn.

Wat aangaat de [8]

GESCHIEDENISSEN,

Van Muiderberg, de beschrijving van deezen vereischt geene breede


plaats: in de oorlogsrampen van Muiden en Naarden, heeft het zeer
waarschijnelijk zijn deel gehad, ofschoon wij desaangaande niets
bijzonderlijks vinden aangetekend; alleenlijk is het optemaaken uit den aart
dier rampen, zodanig zijnde, dat zij zig maar zeldzaam, of liever nooit, aan
een klein plekjen gronds bepaalen, maar altoos eenen ruimen omtrek
inneemen; de bewerkers dier rampen zijn Vorsten, deezen zegt men, niet
ten onrechte, schoon tot hunne schande, hebben lange armen, en zulks
wordt in tijden van oorlog met nadruk gevoeld; als hunne armen gewapend
zijn, rijken hunne zwaarden mijlen ver; en slaat men het oog op hunne
laaghartige huurelingen, die vijanden van alle menschlijkheid, zeker, dan is
het nog minder te bewonderen dat de rampen des oorlogs, zig nimmer bij
een klein pleksken gronds bepaalen; de gezegde vorsten-slaaven, zijn
over het algemeen losbandige booswichten, uitgehongerde raaven, die
onder den dekmantel van rechten des oorlogs, hunne harten met
gruwelen, en hunne maagen met geroofde beeten vullen, gelijk zij ook niet
zelden hunne beestachtige lusten voldoen ten koste van de eer veeler
braave vrouwen en maagden—is er immer een tijd geweest waarin zulks
dagelijks ondervonden wordt, ’t is de tijd dien wij beleeven; door geheel
Europa woedt en plundert de schenzieke en hoogst verachtelijke
soldaat.… doch welhaast wordt veelligt de dag geboren, (sommigen
meenen zelfs de eerste morgenschemering daarvan reeds te bespeuren,)
waarop alle vorst, alle soldaat.… dan op dien toon voordgaande, zouden
wij de eigenlijke paalen van ons plan overschreiden. [9]

Door het vuur heeft Muiderberg, voor zo verre wij hebben kunnen
naspooren, nooit veel geleden; ook niet door het water; want ofschoon het
nabij de zee gelegen zij, heeft de goeddoende en altijd zorgende Natuur
het dorpjen, door middel van vrij hoog duin tegen de woede van dat
element beveiligd.

„In den jaare 1673 hadden de Franschen,” dus luidt een gedeelte der
historie van dit dorp, „zig op Muiderberg verschanst en batterijen
opgeworpen tegen die van Muiden, welke stad zij toen onder hunne magt
hoopten te krijgen; zij werden echter van daar verdreven, door
verscheidene uitleggers op de Zuiderzee, die van Amsteldam gezonden
werden, en door vlotschuiten met kanon waarvan men drijvende batterijen
maakte, die hen van de vaart tusschen Muiden en Naarden zo
benaauwden, dat zij op den 6 Junij van ’t gemelde jaar opbraken, en
hunne onderneemingen lieten vaaren.”

Bij de omwending in onzen burgerlijken staat, heeft Muiderberg zeer veel


geleden: door de Pruissen zijn alle buitenplaatsen grootlijks, en Rustrijk,
die van den Heere Abbema, ook de Pastorij, geheel en al geplunderd:
verscheide weken hebben veele oude lieden en kinderen zig in de open
lucht moeten ophouden, om derzelver schreeuwende mishandelingen te
ontvlieden: wij mogen intusschen niet vergeten aantetekenen dat de
ingezetenen aldaar meest de Patriotsche partij toegedaan waren, en zij
zig, op last der Heeren Staaten van Holland en Westvriesland, ook in den
wapenhandel geoefend hebben.
Onder de

BIJZONDERHEDEN,

Van dit dorpjen, behooren twee kerkhoven, het eene reeds in de


voorgaande eeuw aangelegd voor de Hoogduitsche Jooden, van welken
hier doorgaands honderd in het jaar begraven worden; het andere is,
sedert een jaar aangelegd, voor de Lutherschen [10]van ’t Oude licht; doch
tot heden toe heeft niemand hier eene rustplaats voor zijn overschot
verkozen.

Het voornaame logement waartoe de voorgemelde buitenplaats van den


Heere Abbema gemaakt is, verdient mede eene bijzonderheid genoemd te
worden, uit aanmerking van de zonderling grootsche aanleg, (waarvan
mogelijk in geheel het Vaderland, geen voorbeeld voorhanden is,) zo wel
als van de kleinte van het dorpjen, alwaar dezelve gevonden wordt; doch
wanneer men aanmerkt dat de Grooten reeds vóór dien aanleg gewoon
waren zig op Muiderberg te komen verlustigen, en ook dat er verscheidene
buitenplaatsen rondsom liggen, allen welken geduurende het
zomersaisoen bewoond worden, dan komt de verkiezing van dien aanleg
niet zo geheel bijzonder voor; men konde tog vooraf op voldoend vertier
staat maaken, om reeden van hetgeen wij zo even zeiden; want dat vertier
moet ook alleen slechts van de Grooten komen, de burger schrikt op het
zien van den prachtigen aanleg, zodra hij het woord Logement er voor
leest: vooral is deeze plaats eene bijzonderheid, wegens de
aanmerkenswaardige echo die men aldaar heeft, en welke veele
vreemdelingen derwaards lokt; de Edele Heer Willem Hooft, te
Amsteldam, heeft er den zeer geleerden Heere Martinet, nagenoeg de
volgende beschrijving van medegedeeld—men vindt er een ouden muur in
een halve cirkelronde gedaante, zeven voeten hoog gebouwd, met een
schuinse rollaag, die men op één voet mag rekenen; de middenlijn
deszelven beloopt op honderd en negen voeten binnenswerks: vijftien
voeten ten noorden achter deezen muur staat eene hegge, die twee of drie
voeten hoog boven denzelven uitsteekt, en eenige roeden verder vindt
men hooge boomen; wanneer men nu vóór deezen muur gaat staan, dan
ziet men tusschen beiden eenen platten beplanten grond, en achter zig
heeft men eenen anderen halven cirkel van latwerk, waartegen eenig
geboomte is opgeleid, zijnde de afstand van het middenpunt des muurs tot
dat van het [11]latwerk, van honderd twee- en twintig en een halven voet
Amsteldamsche maat.

Indien men zig nu plaatst op den afstand van drie- en- vijftig voeten van
het middenpunt des muurs, en een ander zeventien voeten ten westen
bezijden den eerstgemelden gaat staan, en dan zacht of hard, geheele
versen spreekt, beantwoordt de echo dezelven, niet achter elkander, maar
elk afzonderlijk, één voor één: dan, het verwonderlijkste van alles is, dat
de stem of de echo niet schijnt terug te komen van den muur, maar uit den
grond, zeer juist alle woorden nabaauwende.

Deeze echo is aldaar ontdekt voor bijna zeventig jaaren, toen de Heer
Homoet eigenaar dier plaatse was, en bij gelegenheid dat men eene
ligusterhegge uitroeide: intusschen is het zeker, dat in het Vaderlandsch
Treurspel, Gerard van Velzen, in het jaar 1613 in ’t licht gegeven, reeds
gesproken wordt van het verstoord gebeente van dit cirkelrond, en van de
echo, bij gevolg is deeze muur, (waartoe gemaakt weet men niet, mogelijk
tevens tot eene begraafplaats,) en dus ook deeze overschoone echo, al
vóór honderd een- en- dertig jaaren, bekend geweest, die daarna in het
vergeetboek geraakt kan zijn, toen deeze hofstede, uit de eene hand in de
andere overging, tot dat men, de ligusterhegge uitwerpende, dezelve
toevallig ontdekte.

REISGELEGENHEDEN.

Deezen zijn als die van Muiden, want van Amsteldam met de schuit tot
daar gekomen zijnde, vaart men met de Naarder schuit tot de
Hakkelaarsbrug, alwaar men uitstapt om verder naar Muiderberg te
wandelen—Terug gaat men weder, of naar Muiden, of naar de
Hakkelaarsbrug voornoemd, en zo verder op Amsteldam.

’T is voor een vaderlander nog al niet onaangenaam, aan [12]gezegde brug


te moeten uitstappen, alzo hij aldaar vergast wordt op het zien van de
Stolp, de landlijke retraite, van den nu zaligen onwaardeerbaaren
Burgervader Hendrik Hooft Danielsz., nog het voorwerp van aller
braaven achting, en die op dat buitenverblijf zijnen hoogen ouderdom
sleet, onder de aangename streelingen van een voldaan geweeten, niet
alleen, maar ook van de hoop, van vóór zijn’ dood zijn vaderland, en met
nadruk zijne geliefde Amstelstad nog eenmaal gelukkig te zullen zien.

LOGEMENTEN,

Deeze zijn geene anderen dan de reeds gemelde plaats van den Heere
Abbema; voords zijn er nog twee herbergen van mindere rang. [1]
[Inhoud]
De stad Weesp.
Zo lang de Zilvren VECHT uw boorden blyft besproeien,
O WESOP! en Natuur u met haar schoon vereert.
Zo lang de Koopmanschap in Nederland zal bloeien;
GENEVER, en door Oost en Westen word begeerd.

Zo lang de Naneef TROUW op hogen prys zal stellen,
Hoort Gy, MYN VADERSTAD! uw naam met blydschap spellen.

B. P.—
DE
S TA D
WEESP.

Onder de geene stem in Staat hebbende Steden van Holland, is Weesp


geenzins eene der geringste, zo wegens derzelver oudheid,
vermaardheid als vermakelijke ligging aan de Rivier de Vecht; een half
uur ten Zuidwesten Muiden; omtrent twee uuren ten Westen Naarden;
ruim twee uuren ten Zuidoosten Amsteldam, en ruim vijf uuren ten
Noorden Utrecht.

NAAMSOORSPRONG.

Bij de Geschiedschrijvers vind men wegens den Naams-oorsprong niets


zekers geboekt. Dat deeze Stad haren naam van de Usipeten
ontleenen zoude, luid al te fabelachtig, om daar aan geloof te slaan. Dat
zij dezelve aan eenen Here de Wesopa, die aldaar een Kasteel, van
dien naam, zou gesticht hebben, verschuldigd is, is even onzeker, en
dat zij om haren geduurigen kloekmoedigen tegenstand door haare
vijanden, leenspreukig, Wespe of Wispe zoude genoemd zijn, hier voor
is geen’ den minsten grond te vinden: ’t zij ons genoeg dat er in Holland
een Steedje is, dat Wezop of Weesp genoemd word, bij welke laatste
benaming het thans allermeest bekend is.

STICHTING en GROOTTE.

Hoewel men den tijd der Stichting dezer Stad met geene zekerheid
bepalen kan; veel min of dezelve altijd met vestingen omringd of bevest
is geweest; kan men echter bewijzen dat zij in den Jaare 1131 reeds
bekend was, als blijkt uit zekeren brief van Andreas den
vijfentwintigsten Bisschop [2]van Utrecht, waarin van bovengemelden
Hero gewaagd word. In de handvest van Hertog Willem van Beieren in
’t Jaar 1355, word van Weesp het allereerst melding gemaakt, als van
eene Stad, voorzien met poorten en wallen, en hare Burgers Poorters
genoemd.

De Stad is zeer ruim en luchtig gebouwd en heeft verscheidene


straaten, die zeer wél betimmerd zijn; van het Zuiden tot het Noorden
doorsneden van de stroomende Rivier de Vecht, waar aan een
Schutsluis ligt, die in een Graft uitlopende, het grootste gedeelte der
Stad wederom in tweeën deelt; terwijl het zuiderdeel met drie Graften
voorzien is, die allen in de laatstgenoemde hunne inwatering hebben.—
Volgends de jongste beschrijving beloopt het getal der Inwooners op
bijkans 2800 menschen, woonende in omtrent 500 huizen, die wederom
in ruim 730 woningen verdeeld zijn. Uit oude tekeningen en
beschrijvingen blijkt het, dat Weesp voorheen met steenen wallen is
omgeven geweest, welker grondslagen men, bij gelegenheden, noch
ontdekken kan, en waar van men noch de overblijfsels ziet aan de
Muiderpoort, de Waag en den zogenaamden Olijmolen, welke
gebouwen zekerlijk voor een gedeelte als rondeelen der oude
vestingwerken moeten beschouwd worden: verval en de uitleggingen
der Stad hebben derzelver afbraak noodzakelijk gemaakt.—
Tegenwoordig is de Stad alleen aan haar Oost en Zuidelijk gedeelte met
aarde bolwerken voorzien, die naar de regelen der hedendaagsche
Vestingbouwkunde opgeworpen zijn. Behalve de andere uitgangen,
heeft deeze Stad drie poorten, namelijk, de Muider, Naarder of ’s
Gravelandsche, en Utrechtsche poort; de eerste is een oud gebouw, in
wiens voorgevel het Keizerlijke wapen staat uitgehouwen, waar onder
het Jaargetal 1552: de twee laatste zijn in den Jaare 1676 gebouwd, en
van eenen ordentlijken aanleg.

’T W A P E N .

Weesp heeft twee Wapens: te weeten het Oude en Nieuwe. Het oude
verbeeld een Kerk, met een’ grooten toren aan den Voorgevel en een’
kleiner’ in de midden: de figuur heeft veel [3]overeenkomst met het
tegenwoordig Kerkgebouw. Het nieuwe is een zilveren paal op een
blaauw veld. Het eerstgenoemde word noch ter bezegeling van brieven
of decreeten gebruikt.

KERKLIJKE en GODSDIENSTIGE GEBOUWEN.

De groote Kerk, waarin de Gereformeerden hunnen Godsdienst


oefenen, is, volgends Jacobus de la Torre, gesticht, of ten minsten
voltooid, in den Jaare 1462, wanneer zij, naar het Roomsch
Kerkgebruik, aan St. Laurentius wierd toegewijd. Het is een schoon,
lang en luchtig Gebouw, pronkende met eenen spitsen toren, in wiens
Koepel een welluidend Klokkenspel hangt, in 1672 door den
vermaarden Petrus Hemoni vervaardigd. Op het Choor is noch een
klein torentje. Dit Gesticht rust binnenwerks op 18 pijlaaren, zijnde
rondom de meeste, de Predikstoel, de Gestoeltens der Regeering en
anderen geplaatst.—Het Orgel, in 1592 gemaakt, heeft, naar den tijd
waarin het zelve vervaardigd is, geen onaangenaam geluid, en word
met deuren gesloten.—In het Choor, dat met een fraai koperen hek van
de Kerk is afgescheiden, vind men een’ kleineren Preêkstoel,
voormaals gebruikt, wanneer de promotie der Latijnsche Schooljeugd
geschiedde. De Gereformeerde Gemeente word bediend door twee
Leeraars, Leden der Classis van Amsteldam: het tractement van den
Oudsten bedraagt 1000 Guldens en vrije woning in de Pastorij, dat van
den jongsten is 1100 Guldens.

De Lutersche Gemeente word bediend door een’ Predikant behorende


onder het Consistorie van Amsteldam, zij is eene der aanzienlijkste dier
Geloofsbelijderen in deeze Republiek. De plaats, ter oefening van
hunnen Godsdienst geschikt, is een klein doch net Gebouw, van binnen
versierd met een fraai Orgel. De oorsprong deezer Gemeente word,
volgends de waarschijnlijkste berichten, gesteld op den 28sten
September 1642. Tobias Brustenbach was de eerste Leeraar maar ook
te gelijk derzelver Stichter. In den Jaare 1647 wierd deeze Gemeente,
die tot dien tijd haare Godsdienstige bijeenkomsten in een klein Huisje
op de Achtergracht [4]gehouden had, in staat gesteld tot den aankoop
van een Huis en erve, ’t welk, in 1654 met noch een ander Huis en erve
vergroot, het tegenwoordig Kerkgebouw uitmaakt; tot den Jaare 1782,
was zij in zodanige omstandigheden geplaatst, dat somtijds het
nabuurig Amsteldam tot het onderhoud harer Leeraar moest
medewerken; wanneer zij door een aanzienlijk Legaat, haar bij uiterste
wille besproken door wijle Vrouwe Voigt, wonende te Muiderberg, in
staat gesteld wierd zich zelve te kunnen onderhouden. Den 30
September 1792, wierd eene Jubelpreêk, bij gelegenheid van de 150
jarige instandblijving der Gemeente, door haaren toenmaligen Leeraar
gedaan.

De Roomsch Catholijken hebben hier ook eene Statie, die


tegenwoordig door eenen waereldlijken Pastoor en Capellaan word
waargenomen. Hun Kerkhuis is van binnen met een naar de bouwkunst
geordend altaar versierd, en het gewelf met Bijbelsche en Kerkelijke
Geschiedenissen fraai beschilderd. Waar aan de vochtigheid en
ouderdom echter veel nadeel hebben toegebragt. Daar en boven is het
Gesticht zelve zeer bouwvallig en veel te bekrompen: ter ondersteuning
van het Gregoriaansche Kerkgezang is er een klein doch zeer
welluidend Orgel in geplaatst. Thans is op requeste, door
Kerkmeesteren dier Gemeente gepresenteerd, ten einde een geschikter
Kerkhuis te erlangen, gunstig appui verleend, waar door aan het
verlangen van het grootste getal der Gemeentenaaren spoedig zal
voldaan worden, hebbende de Kerkbestuurders bereids daar toe een
geschikte plaats aangekocht.

De Joden, wier getal alhier sints weinige Jaaren merkelijk is


toegenomen, hebben hier een Sijnagoge of bedehuis, dat een zeer
klein doch net gebouw is.

Onder de Gestichten die eenige aandacht verdienen bekleed het St.


Bartholomei Gasthuis geene geringe plaats. De tijd van derzelver
stichting is onzeker; dat het echter van geenen jongen tijd is, blijkt uit
den naam van hem aan wien het is toegewijd, en wiens beeldtenis of
naam boven alle de buiteningangen dezes Gestichts is uitgehouwen.
Het is een groot en geen onaanzienlijk Gebouw. Ofschoon voor zo verre
men [5]kan nagaan, alleen geschikt voor een Gasthuis of herberging
voor Vreemdelingen, worden thans ook de gebrekkigen en behoeftigen,
die door de Diaconie ondersteund worden, daarin besteed. De
bestuuring van dit huis is thans opgedragen aan 4 Regenten en 3
Regentessen, die ’s Jaarlijks of op nieuw verkoren of anderen in hunne
plaatsen gesteld worden.

Het Burger-Weeshuis, in vroegere Eeuwen een Klooster voor de


Zusteren van St. Jan Euangelist, is een schoon en ruim Gebouw,
geschikt ter herberginge en opvoeding van Weezen, wier Ouderen
Burgeren dezer Stad waren. Deszelfs bestuur staat thans aan 5
Regenten en 4 Regentessen, die mede Jaarlijks aangesteld worden.

Het Armen-Weeshuis, een Gebouw, waarin sints 1667 de Armen


Weezen, die te vooren in het St. Bartholomei Gasthuis gehuisvest
waren, wierden opgevoed, en werwaards zij op besluit van
Burgemeesteren en Vroedschappen in 1790 wederom wierden
overgebragt, dient voor het tegenwoordige ter inkwartieringe der alhier
in Guarnisoen liggende Militie.

De orde vereischt dat hier ter plaatse ook melding gemaakt worde van
de Stichting van wijlen den Heere Cornelis van Drosthagen, bij
beslotene laatste wille, 1714 gemaakt, en 1718 door zijn dood
bevestigd: volgends welke hij zijne Nalatenschap, bestaande in Huizen,
Landerijen enz onder het bestuur van drie Executeuren van de
Roomsche Religie gesteld heeft; zo nochthans dat bij het afsterven van
eenen derzelven een’ Gereformeerde door de aanblijvenden, in
deszelfs plaatse, mogt verkozen worden; welk laatste reeds sints een
aantal Jaaren heeft stand gegrepen.—De voordeelen, uit deeze
Goederen voordspruitende, moeten in drieën verdeeld worden, als aan
zijne behoeftige Vrienden van moeders zijde; aan het Arme Weeshuis,
en aan Armen der Roomsche Gezindheid. Ter gedachtenisse van
deezen Heer is in een gevel van een der vernieuwde Gebouwen een
steen geplaatst, waarop men het volgende versjen leest:

De voorzorg van Drosthagen


Voor Armen, Weez’ en Magen,
Zij steeds bij ’t Nageslacht
Met dankbaarheid herdacht!——

[6]

WAERELDLIJKE GEBOUWEN.

Onder dezelve bekleed het Stadhuis de eerste plaats. Het is een


buitengemeen schoon en kostbaar Gebouw, in den jaare 1772 geheel
nieuw uit den grond opgehaald, pronkende met eenen arduin en
hardsteenen Voorgevel, naar de Jonische en Dorische orden. Zo
schoon dit Gebouw zich uitwendig opdoet, zo fraai is ook deszelfs
binnenste. Bij het ingaan valt terstond de prachtige Vierschaar in ’t oog,
welker beschouwing den Vreemdeling moet uitlokken om het zelve van
binnen te bezichtigen. De Burgerzaal, Burgemeesters, Schepens en
Vroedschapskamer zijn keurig geordend, naar den smaak gestoffeerd
en versierd met prachtige en fraaje schilderstukken, door den Weesper
Burgemeester Gijsbert Jansz. Sibille. Hoewel men den naam van
deezen Kunstliefhebber in de Schilderboeken te vergeefs zoeken zou,
en buiten deeze Stad weinig bekend schijnt te zijn, zo zijn echter de
werken van zijne hand de opmerking der kenneren dubbel waardig.—
Het Gebouw staat op de Grobbe bij de St. Joris brug, die in
bovengemeld jaar met het daar voor liggend plein gelijk gemaakt is. Ter
plaatse waar het tegenwoordig Stadhuis staat, was in het begin der
voorige Eeuw de Schuttershof of de St. Joris Doelen; waar van in het
oude Stadhuis noch eenige overblijfsels te vinden waren.

De Waag, een oud gebouw, voorheen een rondeel der Vestingen, reeds
in den Jaare 1407 geschikt tot het Stadhuis, waar toe het tot 1634
gebruikt is, staat aan de Vecht. Behalve dat dezelve tot het wegen der
Koopmanschappen enz. gebezigd word, strekt zij ook ter
Vergaderplaats van sommige Gilden: terwijl op een harer vertrekken
thans ook de Hoofdwacht der Militairen gehouden word. Derzelver
Voorgevel is niet onaanzienlijk, en pronkt met het Wapen der Stad.

De Stads School, mede geen onaanzienlijk Gebouw, heeft [7]men, niet


zonder grond, te houden voor een gedeelte van het Klooster, het Jonge
Convent genaamd: in deeze kunnen ook de Kinderen van
minvermogende voor niet onderwezen worden, waar toe aan den Stads
Schoolmeester, een Jaarlijks tractement gegeven word.

De Stads Fransche Kostschool voor Jonge Heeren, is een ruim en


luchtig Gebouw, staande op de nieuwe Gracht aan het Zuideinde der
Stad; deeze School is in eenen zeer bloeienden staat.

Voords is alhier noch eene Fransche Kostschool voor Jonge


Juffrouwen, wier aantal geduurig toeneemt.

De Vleeschhal en Bank van Leening zijn geene Stadsgebouwen,


wordende de eerste gehuurd; en de laastgenoemde behoort aan eenen
Jood, die daar voor eene jaarlijksche recognitie aan de Kerk betaalt.

De Godsdienstige en Waereldlijke Gestichten deezer Stad beschouwd


hebbende, gaan wij over tot derzelver

REGEERING.

Alhoewel de kundige Schrijver der Grondwettige Herstelling van


Nederlands Staatswezen verzekert, dat de vastgestelde
Regeeringsform van Wezop of Weesp tot 1445 in handen van het Volk
berustte, schijnen de handvesten der Stad ons het tegendeel
aanteduiden, vermits in een geschreven handvest, die in de gedrukte
niet gevonden wordt, en in 1387, aan die ghemeenen Steden en
Dorpen van Amsterlandt ende van Goijlandt door Herthog Albrecht
van Beieren is gegeven, het 1e. Art. van den volgenden inhoud is. Dat
wij off dien wij dat bevelen, off onse Baliuw, die nu is off naemaels
wesen zal, altoes Schepenen kiesen zal binnen Steden ende opten
Dorpen, alsoe veel als costumelijk is, op onser Vrouwendach te
Lichtmisse van den redelijcxsten en vroetsten knaepen, enz.—1407 gaf
Jan van Beieren, Elect van Luijdik, als Heer van Muijden, van Wesop,
van Naerden ende van Goijlandt, ook eenen openen brieve, in welken
hij om oerbaer ende nutschap wille zijns lands voorss. zijne
bovengenoemde ondersaten overdragen heeft eenige [8]puncten, onder
welke het 10. Art. van ons handschrift dus luidt. „Item, soe willen wij dat
binnen onsen Stede van Weesop van deser tijt voort wesen sullen
seven Scepenen die onse Dienaars daer sullen setten: welke handvest
door Filips van Bourgondien, als Ruwaert ende oir der Landen van
Hollandt in 1425 gheconfirmeert ende ghevesticht is. Hoe het met de
Regeering, voor Albrecht van Beieren, gesteld is geweest, daar van
zijn, zo ver mij bewust is, geene bewijzen voorhanden. Het zij ons
genoeg betoogd te hebben dat de Graven, ten minsten, de Schepenen
hebben aangesteld, en dat zulks geenzins door het Volk of deszelfs
vertegenwoordigers geschied is.—Filips van Bourgondien, gaf in den
Jaare 1445 aan de Stad Weesop de handvest, waar bij hij haar
ghegont ende gheconsenteert heeft, dat voortaen één ende dertich die
rijcste poorteren, die meeste leggende erven en staende ghetimmert
hebben, en de hoegste daer in ’t schodt staen, alle jaer op onser
Vrouwendach Purificatio bij de meeste stemmen kiesen sullen vierthien
goede notabile mannen, uijt den voorss. XXXI of uijt andere die
poorteren van Weesop, uijt welke XIIII persoenen alsoe bij den één en
de dertich ghecoeren wesende bij der meeste stemmen onsen raede
van Hollandt, onse Baliuw van Goijlandt in der tijt wesende off die wij
des machtigen sullen, op onser Vrouwen-dach purificatio kiesen ende
eden sullen seven Scepenen, die dat toecomende Jaer Scepenen
wesen sullen; welke Scepenen voort kiesen sullen ’t eerste jaer drie
Burghemeesteren van onse Stede voorss. Als dat van outs ghewoonlijk
is, ende voert alle jaer twee nieuwen Burghemeesters ende eenen
ouden daar in te laeten blijven.” De verkiezinge der Regenten geschied
ten huidigen dage noch naar den inhoud van dit Privilegie, alleen met

You might also like