# Source code explanation in R

#### user366312

Gold Member
Summary
Kindly explain the source code in R which meant for calculating stationary distribution of a transition matrix.
Summary: Kindly explain the source code in R which meant for calculating stationary distribution of a transition matrix.

I am trying to understand the following source code meant for finding stationary distribution of a matrix:

R code:
$# Stationary distribution of discrete-time Markov chain$#  (uses eigenvectors)
stationary <- function(mat)
{
x = eigen(t(mat))$vectors[,1] as.double(x/sum(x)) } I tested the following source code myself: R code: > rm(list=ls()) > > P <- matrix(c(0.66, 0.34, + 0.66, 0.34), nrow=2, ncol=2, byrow = TRUE) > > x <- eigen(t(P)) > x$values
[1] 1 0

$vectors [,1] [,2] [1,] 0.8889746 -0.7071068 [2,] 0.4579566 0.7071068 > y <- x$vectors[,1]
> y
[1] 0.8889746 0.4579566
>
looks like the command
Code:
y <- x\$vectors[,1]
is selecting the 1st column of the matrix.

Why wasn't that simply written like the following?

R code:
$# Stationary distribution of discrete-time Markov chain$#  (uses eigenvectors)
stationary <- function(mat)
{
x = eigen(t(mat))
y = x[,1]
as.double(y/sum(y))
}
What was the reason for introduction of a dollar sign and vector keyword?

Last edited:
Related Programming and Computer Science News on Phys.org

#### jedishrfu

Mentor
My suggestion is to begin reading up on R or checking out some online tutorials

@FactChecker suggestion in your other thread is a great technique for teasing out what these constructs mean.

There’s also the Rosetta Code website with examples of R doing various tasks. The code may or may not be the best implementation of any task but they are instructive

And lastly the R reference on the eig function

#### FactChecker

Gold Member
2018 Award
What was the reason for introduction of a dollar sign and vector keyword?
That is what the documentation of the eigen function says that it returns. (see R documentation of eigen function)
I don't think that your code will work. When you encounter an unfamiliar function, it is always good to check the documentation.

#### user366312

Gold Member
That is what the documentation of the eigen function says that it returns. (see R documentation of eigen function)
I don't think that your code will work. When you encounter an unfamiliar function, it is always good to check the documentation.
Got it thanks.

"Source code explanation in R"

### Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving