Source code explanation in R

  • Thread starter user366312
  • Start date
  • #1
user366312
Gold Member
71
3

Summary:

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

Main Question or Discussion Point

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:

Answers and Replies

  • #2
11,800
5,414
My suggestion is to begin reading up on R or checking out some online tutorials

https://www.tutorialspoint.com/r/index.htm
@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

http://rosettacode.org/wiki/Category:R
And lastly the R reference on the eig function

https://www.rdocumentation.org/packages/pracma/versions/1.9.9/topics/eig
 
  • Like
Likes FactChecker
  • #3
FactChecker
Science Advisor
Gold Member
5,580
2,057
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.
 
  • Like
Likes jedishrfu
  • #4
user366312
Gold Member
71
3
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.
 

Related Threads on Source code explanation in R

  • Last Post
Replies
1
Views
287
  • Last Post
Replies
15
Views
2K
Replies
6
Views
3K
  • Last Post
Replies
8
Views
29K
Replies
5
Views
877
  • Last Post
Replies
1
Views
2K
Replies
1
Views
564
Replies
2
Views
625
Replies
8
Views
2K
Top