Learn about the latest tips, tutorials, upcoming events and certifications

SAS' Leonid Batkhan reviews SAS functionality related to the character strings quoting/unquoting, then dives deep into unquoting SAS character variables.

Learn about the latest tips, tutorials, upcoming events and certifications

How to unquote SAS character variable values

SAS' Leonid Batkhan reviews SAS functionality related to the character strings quoting/unquoting, then dives deep into unquoting SAS character variables.

Using SAS® to analyze and visualize a quadratic ANCOVA model

Learn how to use the SGPLOT procedure for graphical representation when you perform statistical analysis for a quadratic ANCOVA model with the GLM procedure.

“Los perfiles híbridos, que combinan la parte cuantitativa y de negocio, son muy atractivos para las empresas”

Las compañías son hoy más conscientes que nunca de la necesidad de basar su toma de decisiones de negocio en datos para que éstas sean lo más objetivas y fundamentadas posible. Esta tendencia está teniendo un impacto en la demanda de perfiles analíticos, capaces de interpretar los datos y extraer

Video: How to Write a Custom Parallel Program in SAS Viya

My 2020 SAS Global Forum paper was about how to write custom parallel programs by using the iml action in SAS Viya 3.5. My conference presentation was canceled because of the coronavirus pandemic, but I recently recorded a 15-minute video that summarizes the main ideas in the paper. One of

The best way to generate dummy variables in SAS

On discussion forums, many SAS programmers ask about the best way to generate dummy variables for categorical variables. Well-meaning responders offer all sorts of advice, including writing your own DATA step program, sometimes mixed with macro programming. This article shows that the simplest and easiest way to generate dummy variables

How does PROC FCMP store functions?

I got a lot of feedback about my recent article about how to find roots of nonlinear functions by using the SOLVE function in PROC FCMP. A colleague asked how the FCMP procedure stores the functions. Specifically, why the OUTLIB= option on the PROC FCMP statement use a three-level syntax:

Estimate a power curve in parallel in SAS Viya

I recently showed how to use simulation to estimate the power of a statistical hypothesis test. The example (a two-sample t test for the difference of means) is a simple SAS/IML module that is very fast. Fast is good because often you want to perform a sequence of simulations over

Expanding lengths of all character variables in SAS data sets

SAS' Leonid Batkhan reveals how to change lengths for all character variables in a data set and all data sets in a data library to facilitate data migration to Unicode encoding environment.

Use simulation to estimate the power of a statistical test

A previous article about standardizing data in groups shows how to simulate data from two groups. One sample (with n1=20 observations) is simulated from an N(15, 5) distribution whereas a second (with n2=30 observations) is simulated from an N(16, 5) distribution. The sample means of the two groups are close

Learning to think like SAS

The most fundamental concept that students learning introductory SAS programming must master is how SAS handles data. This might seem like an obvious statement, but it is often overlooked by students in their rush to produce code that works. I often tell my class to step back for a moment

Submatrices of matrices

Have you ever seen the "brain teaser" for children that shows a 4 x 4 grid and asks "how many squares of any size are in this grid?" To solve this problem, the reader must recognize that there are sixteen 1 x 1 squares, nine 2 x 2 squares, four 3 x 3 squares, and one 4 x 4 square.

Run tasks in parallel in SAS Viya

The iml action was introduced in Viya 3.5. As shown in a previous article, the iml action supports ways to implement the map-reduce paradigm, which is a way to distribute a computation by using multiple threads. The map-reduce paradigm is ideal for “embarrassingly parallel” computations, which are composed of many

8 ways to use the Kronecker product

The Kronecker product (also called the direct product) is a binary operation that combines two matrices to form a new matrix. The Kronecker product appears in textbooks about the design of experiments and multivariate statistics. The Kronecker product seems intimidating at first, but often one of the matrices in the

SAS and Open-Source Model Management (free eBook)

Turn analytical models into business value and smarter decisions with this special collection of papers about SAS Model Management. Without a structured and standardized process to integrate and coordinate all the different pieces of the model life cycle, a business can experience increased costs and missed opportunities. SAS Model Management solutions enable organizations to register, test, deploy, monitor, and retrain analytical models, leveraging any available technology – including open-source models in Python, R, and TensorFlow –into a competitive advantage.

Splitting a data set into smaller data sets

SAS' Leonid Batkhan shows you how to split a large data set into many by a subsetting by a number of observations to produce smaller, better manageable data sets.

Shaping the future of lifelong learning

I think we can all agree that lifelong learning is the future, for all of us. We know that we need to learn and develop all the time, simply to stay abreast. The world is changing fast, and we must change with it. Investing in analytics talent is an investment

Compute within-group multivariate statistics and store them in a list

I recently showed how to compute within-group multivariate statistics by using the SAS/IML language. However, a principal of good software design is to encapsulate functionality and write self-contained functions that compute and return the results. What is the best way to return multiple statistics from a SAS/IML module? A convenient

A parallel implementation of Monte Carlo simulation in SAS Viya

A previous article introduces the MAPREDUCE function in the iml action. (The iml action was introduced in Viya 3.5.) The MAPREDUCE function implements the map-reduce paradigm, which is a two-step process for distributing a computation to multiple threads. The example in the previous article adds a set of numbers by

A general method for parallel computation in SAS Viya

The iml action in SAS Viya (introduced in Viya 3.5) provides a set of general programming tools that you can use to implement a custom parallel algorithm. This makes the iml action different than other Viya actions, which use distributed computations to solve specific problems in statistics, machine learning, and

새로워진 SAS 커뮤니티를 소개합니다

오랜 시간동안 많은 사랑을 받아온 SAS 사용자 커뮤니티가 리뉴얼되었습니다. 한국에서 SAS 커뮤니티의 역사는 벌써 30년이 되었습니다. 1990년 SAS코리아 설립 이후 SAS User Group International-Korea(SUGI-K)라는 이름으로 활동한 SAS 사용자 모임이 2007년 MYSAS로 명칭을 바꾸었습니다. 그리고, 2010년 홈페이지를 개편하고 10년 만인 2020년, 사용자 모임의 활성화를 위해 새로운 SAS 커뮤니티 사이트로 여러분을 다시

Pooled, within-group, and between-group covariance matrices

A previous article discusses the pooled variance for two or groups of univariate data. The pooled variance is often used during a t test of two independent samples. For multivariate data, the analogous concept is the pooled covariance matrix, which is an average of the sample covariance matrices of the

Perde arkası: Bir analitik mimarına sıkça gelen teknik sorular

Teknik mimari çeşitli bir konudur- ancak bazı sorular tekrar tekrar gündeme gelir. Altyapıyı, açık kaynak politikasını, IoT veri yönetimini, paydaş katılımını kapsayan geniş yelpazenin tamamı, kurumsal mimarların oynadığı rolün giderek daha önemli bir hale geldiğine işaret ediyor. Bu yazımda son 12 ay boyunca en sık sorulan on soru ve müşterilerime

Write a CAS data table by using the iml action

A previous article shows how to use the iml action to read a CAS data table into an IML matrix. This article shows how to write a CAS table from data in an IML matrix. You can read an overview of the iml action, which was introduced in SAS Viya

Read a CAS data table by using the iml action

A previous article compares a SAS/IML program that runs in PROC IML to the same program that runs in the iml action. (You can read an overview of the iml action.) The example in the previous article was very simple and did not read or write data. This article compares

An introduction to the iml action in SAS Viya

This article introduces the iml action, which is available in SAS Viya 3.5. The iml action supports most of the same syntax and functionality as the SAS/IML matrix language, which is implemented in PROC IML. With minimal changes, most programs that run in PROC IML also run in the iml

How to save Jupyter notebooks in assorted formats

Learning never stops. When SAS had to change this year’s SAS Global Forum (SASGF) to a virtual event, everyone was disappointed. I am, however, super excited about all of the papers and stream of video releases over the last month (and I encourage you to register for the upcoming live

How to estimate the difference between percentiles

I recently read an article that describes ways to compute confidence intervals for the difference in a percentile between two groups. In Eaton, Moore, and MacKenzie (2019), the authors describe a problem in hydrology. The data are the sizes of pebbles (grains) in rivers at two different sites. The authors

Multi-purpose macro function for getting information about data sets

SAS' Leonid Batkhan describes programming technique for creating multi-purpose SAS® Macro functions.

How to copy files in SAS Enterprise Guide

One of the problems that trips up experienced SAS users when they begin to use SAS Enterprise Guide is a result of simple geography. The SAS Enterprise Guide application runs here, on your desktop. The SAS Workspace session (which accesses data and cranks through your analysis) runs over there, on

What to expect when you take SAS training: Before, during and after

You’ve chosen the right class, added-to-cart, and hit submit. You’re committed – now what? Once you book a class with us, no matter the format, you can expect an email confirming your request within 24 hours. For instructor-led training courses, a reminder email is sent 3-5 days before the course