Image for post
Image for post
Image by Author

Stock Market Analysis with R programming language

This blog covers the fall and recovery of the Indian Stock Market during this pandemic period. This analysis is done by using R programming language to study the related dataset.


The stock market of India fell by 41.2% to be precise during the period between January to April. At the starting of this year, most of the companies were at their peak and turned down to be 52 weeks low (considered as lowest ever in the year). Now, the stock market started recovering and the gain percentage in an average is 43% but still, there are pending recovery values which need to be retrieved. This analysis is taken sector-wise and is compared with the NSE (National Stock Exchange) indices movement. All these data and scrutiny (observation) is between Jan-01–2020 to Jun-09–2020. This analysis also reveals how the stocks and index performed during this period and which are the best and worst recovered companies.

R as an Analysis Tool

R programming language is considered one of the powerful languages for Data Science and it is also very accessible for users. Software used for coding R is RStudio and there are also other platforms to code R which you can prefer. This language is widely used by Statisticians and Data miners for data analysis and for developing statistical software. Let’s see how to do Stock Analysis with R :

1. Importing dataset using Import Dataset :

Image for post
Image for post

2. Read the dataset file which you have imported :

Image for post
Image for post

3. Coding for our required Analysis (I have extracted the data from NSE Website, the above one is just an example, now I’m coding with a different dataset)

This is an example with Wipro :

#Examining the lowest value of wipro
> min(wipro_index$Close)
#Examining the highest value of wipro
> max(wipro_index$Close)
#Calculating fall value of wipro
> max(wipro_index$Close) - min(wipro_index$Close)
#Calculating fall percentage of wipro
> 94.85 / max(wipro_index$Close) * 100
#Examining the recovery of wipro
> max(wipro_may$'Close Price')
#Calculating recovery value of wipro
> max(wipro_may$'Close Price') - min(wipro_index$Close)
#Calculating recovery percentage of wipro
> 64.1 / min(wipro_index$Close) * 100
#Calculating pending recovery value of wipro
> max(wipro_index$Close) - max(wipro_may$'Close Price')
#Calculating pending recovery percentage of wipro
> 30.75 / max(wipro_index$Close) * 100
#Summarizing our analysis of wipro
> wipro_index %>%
summarize(high = max(wipro_index$Close) ,
low = min(wipro_index$Close) ,
fall_value = max(wipro_index$Close) - min(wipro_index$Close) ,
fall_percentage = 94.85 / max(wipro_index$Close) * 100 ,
recovery = max(wipro_may$`Close Price`) ,
recovery_value = max(wipro_may$`Close Price`) - min(wipro_index$Close) ,
recovery_percentage = 64.10 / min(wipro_index$Close) * 100 ,
pending_recovery = max(wipro_index$Close) - max(wipro_may$`Close Price`) ,
pending_percentage = 30.75 / max(wipro_index$Close) * 100 )
high low fall_value fall_percentage recovery recovery_value
257.2 162.35 94.85 36.88 226.45 64.1
recovery_percentage pending_recovery pending_percentage 39.4826 30.75 11.96

From this coding, we can generate our specified result which we want to form the dataset. After getting our data from R we can use Excel for a neat tabulation for our Analysis. In this program, I have used functions including “min,” ”max,” “summarize.”

min — “min” function returns the minimum value of a vector or column.

max — It returns the highest or the maximum value of a vector or column.

summarize — The “summarize” function reduces a data frame into a summary of just one vector or value.

Tabulation of our Data

Image for post
Image for post

Graph comparison of Values

Data visualization is very important in the financial world, especially for Analysis. Instead of creating a tabulation, a simple graph or any way of representation is easy to understand and it is very useful for comparison too. In this blog, I’ve compared the values of companies using line graphs for easy understanding.

1. Nifty 50

Image for post
Image for post

From this graph, we can understand that Nifty 50 index was at its peak on 14-Jan-2020 and had a fall price of 7,610.250 on 23-Mar-2020. We can also observe that the price of 12,362.30 came down to 7,610.250 in just 68 days which is 38.44% from its peak value. The next thing we can observe from this graph is the recovery value of Nifty 50. The stock values of Nifty 50 zoomed from 7,610 to 10,167 in only 78 days and had a jump percentage of 33.6 %. The last thing about this graph is that even though the prices spiked in 78 days it couldn’t make up to its peak price of 12,362. So, we can conclude that the pending recovery value of Nifty 50 is still 2,195 and needs to shine up for a percentage of 21.59%.

2. Wipro and ITC (Indian Tobacco Company)

Image for post
Image for post

This is a graph comparing stock prices of two companies, Wipro and ITC. We can observe that the movement of both companies is relatively similar during this period. The stock price of Wipro in January was 257.2, had a fall of 94.85, and reached a stock price of 162. The percentage of fall value is 36.88%. Soon it recovered in June and zoomed to a price of 226 and had a recovery rate of 39.4%. When we compare the peak price of Wipro with the recovery price, the pending recovery value is 30.75 and has to rise by 13.58%. Coming to ITC, its peak price was 243.25 and declined to a price of 147.25 during this period. This company had a fall value of 96 and declined by 39.47%. The stock prices are appreciated to 200.55 between March and June, the recovery rate was 36.20%. In case of pending recovery value, Wipro has a less pending recovery rate when compared to ITC which is at 21.29%. We can say that Wipro performed well during this period as it has less pending recovery rate when compared to ITC.

3. Tata Motors and Gail

Image for post
Image for post

This graph compares the stock prices of two companies Tata Motors and Gail. We can notice that the peak price of these two companies differs but in case of declined price, they are similar. The peak price of Tata Motors was 200.35 and the declined price is 65.30. From these prices, we can observe that Tata Motors has phenomenal fall value and rate. The fall value of Tata motors is 135.05 and declined percentage is 64.41%. In Spite of having drastic depreciation in prices Tata Motors recovered in a very short span of time. It zoomed to a price of 115.45 from a declined price of 65.30. The recovery rate is 76.80%. But still, the pending recovery value is 84.90 with a rate of 73.54%. Coming to Gail the price movements are not so phenomenal when compared to Tata Motors. The peak price was 131.65 and the declined price is 69.40 which is more similar to Tata Motors. The fall value and rate of Gail are 62.25 and 42.28% respectively. The recovery price is 104.75 which can be considered as a good comeback when compared to Tata Motors. The pending recovery value of Gail is 26.90 with a percentage of 25.68%. This graph comparison clearly reveals that the price movements of Tata Motors during this period were very volatile.

4. Reliance, L & T and Asian Paints

Image for post
Image for post

This graph comprises the stock prices of three companies namely Reliance, L & T, and Asian Paints. The stock price of Reliance was it’s peak value of 1,581 and had a price depreciation to 884.05. But the recovery rate was phenomenally high which is higher than it’s peak price. The recovery price is 1,581.70, an increased rate of 0.7% from its peak price. Obviously there is no pending recovery rate as the price exceeds its peak value. The highest stock price of L & T was 1,370.20. The fall price and value of L & T are 707.90 and 662.30 respectively. The down rate of L & T is 48.34%. The recovery price of L & T is 961.35 and the rate is 35.80. The pending recovery value of L & T is 408.85. From this we can say that the performance of L & T is poor when compared to L & T. Coming to Asian Paints, considering all the peak prices Asian Paints is top among that. The peak price of Asian Paints was 1,893.70 and the declined price is 1,498.45. The recovery price is 1,716.55, from this we can note that the pending value and rate of Asian Paints would be lower than L & T. The pending recovery value and rate of Asian Paints are 177.15 and 10.32%. Like this, we can predict the values easily in charts or any type of representation without doing any calculations.

5. SBI and Sun Pharma

Image for post
Image for post

This line chart represents the stock prices of SBI and Sun Pharma. The price movements of SBI are very volatile during this period as we can observe from the chart. The peak price of SBI was 339.3 and had a staggering price decline of 175.5. The fall percentage of SBI is 48.28%. The recovery rate of SBI is only 7.01% which is considered as the lowest of all companies. The pending recovery value is 151.50 with a phenomenal pending recovery rate of 80.67%. The next following company is Sun Pharma whose performance is good when compared to SBI. The peak price of Sun Pharma was 489.9 and had a price depreciation of 324.5 with a fall value and rate of 165.40 and 33.76% respectively. Sun Pharma has an exceptionally good recovery price and rate. The recovery price of Sun Pharma is 500.75 which is greater than it’s peak price of 489.9 with a rate of 2.17%. It is obvious that Sun Pharma has no pending recovery value. The last company is Airtel. It is considered as the most profitable company in this whole dataset. The peak price of Airtel was 565 and had a price depreciation to 404.05. The fall value and percentage are 160.95 and 28.49% respectively. However having a fall percentage of 28.49%, Airtel has a surprising recovery price of 598.8 which is higher than it’s peak value with an increase in the rate of 5.64%. From this, we can conclude that the performance Sun Pharma and Airtel are far better than SBI.

Summarizing the Best and Worst Performances

After all these analysis, in this pandemic period some companies have performed exceptionally well and some or not. So, I’ve picked three best performing companies and three worst-performing companies from this analysis.

Best Performing Companies :

  • Reliance
  • Sun Pharma
  • Airtel

The reason for picking out these companies is that they have a phenomenal recovery rate and no pending recovery value. The price movements were also not too volatile, so these companies might turn out to be good investment options.

Worst Performing Companies :

  • SBI
  • Tata Motors
  • L & T

These companies performed well in the previous year but during this pandemic, the price movements of these three companies were very volatile, and also they have a phenomenal pending recovery value and rate. So, it is not advisable to invest in these companies during this pandemic period.

Data science not only comes under computer science but also in financial analysis. Data Science is very important in business, economics, etc. In economics, using data science we can do our own demand analysis series which plays a key role in Economic planning for making a future projection of demand, sales, prices, cost allocation, etc. Coming to business, data science has a huge impact on it as the complexity of business goes on. One of the important applications of data science in business is decision-making. Not only in economics and business there are many fields where data science is used and it is also considered as one of the trending topics to explore.

The below link is an interesting online basic data science course offered by Harvard University:

Originally published on my website . You are welcome to visit my website.

Founder @CodeX (, a medium publication connected with code and technology |

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store