library("XML")
library("rvest")
## Loading required package: xml2
## 
## Attaching package: 'rvest'
## The following object is masked from 'package:XML':
## 
##     xml
library("ggplot2")
library('dplyr')
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Data Extraction

nepse <- read_html('https://nepsealpha.com/trading-signals/funda/')
nepse_d <- nepse %>%
  html_node(xpath = '//*[@id="funda-table"]') %>% html_table(fill = TRUE)

Cleaning

nepse_d$LTP <- as.numeric(nepse_d$LTP)
nepse_d$PE <- as.numeric(nepse_d$PE)
nepse_d$PB <- as.numeric(nepse_d$PB)
## Warning: NAs introduced by coercion
nepse_d$PEG <- as.numeric(nepse_d$PEG)
library(janitor)
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
nepse_cleaned <- clean_names(nepse_d)
pe_undervalued <- filter(nepse_cleaned,pe_vs_sector=="Undervalued") 
names(nepse_cleaned)
##  [1] "symbol"                      "ratios_summary"             
##  [3] "financial_strength"          "sector"                     
##  [5] "daily_gain"                  "ltp"                        
##  [7] "pe"                          "pb"                         
##  [9] "roe"                         "roa"                        
## [11] "peg"                         "discount_from_graham_number"
## [13] "pe_vs_sector"                "pb_vs_sector"               
## [15] "peg_vs_sector"               "dividend_yield_vs_sector"   
## [17] "roe_vs_sector"               "yoy_growth_vs_sector"       
## [19] "qoq_growth_vs_sector"        "roa_vs_sector"              
## [21] "dividend_yield"              "payout_ratio"
three_undervalued<- filter(nepse_cleaned,pe_vs_sector=="Undervalued" & pb_vs_sector=="Undervalued" & peg_vs_sector=="Undervalued")
all_undervalued<- filter(nepse_cleaned,pe_vs_sector=="Undervalued" & pb_vs_sector=="Undervalued" & peg_vs_sector=="Undervalued", dividend_yield_vs_sector=="Undervalued", roe_vs_sector=="Undervalued")
all_undervalued$dividend_yield_num <- as.numeric(gsub("[\\%,]", "",all_undervalued$dividend_yield))

names(all_undervalued)
##  [1] "symbol"                      "ratios_summary"             
##  [3] "financial_strength"          "sector"                     
##  [5] "daily_gain"                  "ltp"                        
##  [7] "pe"                          "pb"                         
##  [9] "roe"                         "roa"                        
## [11] "peg"                         "discount_from_graham_number"
## [13] "pe_vs_sector"                "pb_vs_sector"               
## [15] "peg_vs_sector"               "dividend_yield_vs_sector"   
## [17] "roe_vs_sector"               "yoy_growth_vs_sector"       
## [19] "qoq_growth_vs_sector"        "roa_vs_sector"              
## [21] "dividend_yield"              "payout_ratio"               
## [23] "dividend_yield_num"
drops <- c("financial_strength","pe_vs_sector", "pb_vs_sector", "peg_vs_sector", "dividend_yield_vs_sector", "roe_vs_sector","yoy_growth_vs_sector", "qoq_growth_vs_sector","roa_vs_sector")
all_undervalued <- all_undervalued[ , !(names(all_undervalued) %in% drops)]
filter(pe_undervalued,ratios_summary=="Strong")
##    symbol ratios_summary financial_strength                       sector
## 1     KBL         Strong                 NA             Commercial Banks
## 2    MEGA         Strong                 NA             Commercial Banks
## 3     NBB         Strong                 NA             Commercial Banks
## 4     NBL         Strong                 NA             Commercial Banks
## 5    BOKL         Strong                 NA             Commercial Banks
## 6     NMB         Strong                 NA             Commercial Banks
## 7    PCBL         Strong                 NA             Commercial Banks
## 8  SANIMA         Strong                 NA             Commercial Banks
## 9     SBL         Strong                 NA             Commercial Banks
## 10   SRBL         Strong                 NA             Commercial Banks
## 11   GBBL         Strong                 NA            Development Banks
## 12   JBBL         Strong                 NA            Development Banks
## 13  MNBBL         Strong                 NA            Development Banks
## 14  SADBL         Strong                 NA            Development Banks
## 15  SHINE         Strong                 NA            Development Banks
## 16   GFCL         Strong                 NA                      Finance
## 17  GMFIL         Strong                 NA                      Finance
## 18   MFIL         Strong                 NA                      Finance
## 19   RLFL         Strong                 NA                      Finance
## 20   SIFC         Strong                 NA                      Finance
## 21    BFC         Strong                 NA                      Finance
## 22   KPCL         Strong                 NA                  Hydro Power
## 23   NGPL         Strong                 NA                  Hydro Power
## 24  HIDCL         Strong                 NA                   INVESTMENT
## 25  SLICL         Strong                 NA               Life Insurance
## 26   PLIC         Strong                 NA               Life Insurance
## 27    HDL         Strong                 NA Manufacturing And Processing
## 28   RMDC         Strong                 NA                 Microfinance
## 29 SDLBSL         Strong                 NA                 Microfinance
## 30  SKBBL         Strong                 NA                 Microfinance
## 31  SMFBS         Strong                 NA                 Microfinance
## 32   GILB         Strong                 NA                 Microfinance
## 33   ILBS         Strong                 NA                 Microfinance
## 34   MERO         Strong                 NA                 Microfinance
## 35    SIC         Strong                 NA           Non Life Insurance
## 36    SIL         Strong                 NA           Non Life Insurance
## 37   NICL         Strong                 NA           Non Life Insurance
## 38    EIC         Strong                 NA           Non Life Insurance
## 39   PRIN         Strong                 NA           Non Life Insurance
## 40    IGI         Strong                 NA           Non Life Insurance
##    daily_gain  ltp   pe   pb     roe    roa   peg discount_from_graham_number
## 1         0 %  312 21.4  2.3 11.97 %  1.28%  1.75                         48%
## 2      0.33 %  302 21.7  2.2 11.48 %  1.33%  0.87                         46%
## 3     -0.53 %  378 18.1  2.3 13.86 %  2.11% 20.94                         36%
## 4         0 %  418 18.7  1.5  9.03 %  1.45% -5.06                         13%
## 5     -0.66 %  301 16.4  1.8 12.02 %  1.54%  1.00                         15%
## 6     -0.48 %  414 22.5  2.8 13.14 %   1.5%  1.33                         66%
## 7      0.46 %  433 19.7  2.6 14.23 %  1.94%  1.12                         50%
## 8         0 %  395 19.7   NA 14.87 %  1.46%  1.67                           -
## 9     -0.71 %  419 16.3  2.3  16.3 %     0%  1.29                         29%
## 10    -0.99 %  300 17.9  2.0 11.55 %  1.32%  1.97                         25%
## 11        0 %  343 17.4  2.5 15.87 %   1.3%  0.78                         38%
## 12    -0.38 %  262 17.5  2.0 12.29 %  1.21%  0.70                         24%
## 13    -0.23 %  428 21.0  3.1 16.02 %  1.29%  1.44                         70%
## 14    -0.42 %  237 20.8  1.8  9.11 %  0.83% -5.38                         28%
## 15     0.75 %  270 18.9  1.9 11.16 %  1.33%  1.38                         28%
## 16     1.83 %  278 23.4  1.8  8.05 %  0.92% -5.07                         37%
## 17     0.85 %  237 22.4  1.5  7.67 %  1.35% -1.27                         23%
## 18     2.25 %  500 10.4  3.0 35.02 %  4.44%  0.42                         17%
## 19    -0.41 %  245 20.3  1.7  9.77 %  1.72% -3.56                         25%
## 20        0 %  252 22.2  2.0  8.94 %  1.55%  0.89                         39%
## 21        0 %  177 21.4  1.6   8.1 %  1.81%  0.86                         23%
## 22     7.84 %  330 30.2  2.8  9.66 %  5.12%  1.21                         92%
## 23     9.38 %  315 43.0  2.9  6.84 %  4.58%  1.72                        137%
## 24    -0.41 %  487 86.8  4.5  6.02 %  4.78%  3.47                        315%
## 25    -0.95 %  838 60.8  6.3 10.65 %  2.98%  2.43                        313%
## 26    -0.45 %  876 63.0  6.7 10.41 %  2.27%  2.52                        332%
## 27     -1.4 % 4565 43.3 19.4 46.83 % 29.23%  1.73                        511%
## 28     0.34 % 1179 36.0  4.4 13.78 %  3.22%  2.87                        166%
## 29     2.36 % 1648 43.7 12.1 34.41 %  3.59%  0.00                        384%
## 30    -0.88 % 1695 37.6  6.5 18.88 %  2.28%  1.64                        230%
## 31    -1.87 % 2630 49.4 17.0 40.16 %  3.71% -3.78                        510%
## 32    -2.13 % 2799 45.2 15.2 41.54 %  3.97%  1.81                        453%
## 33    -3.19 % 1820 41.2 11.7 33.43 %  4.05%  1.65                        363%
## 34      4.3 % 1796 49.5 12.1 28.28 %  3.68%  2.59                        417%
## 35      2.1 % 1700 39.4  6.9  19.3 %  21.2%  2.39                        248%
## 36     -0.4 % 1233 35.7  5.2  15.7 %  15.7%  3.68                        187%
## 37      0.5 %  799 39.4  4.9 12.46 % 13.27%  1.58                        194%
## 38       -1 %  790 41.1  4.9 12.66 % 12.66%  1.65                        199%
## 39     0.21 %  970 36.6  4.7 13.71 % 13.71%  2.81                        177%
## 40     0.17 % 1155 45.5  7.4 17.95 % 17.95%  1.82                        287%
##    pe_vs_sector pb_vs_sector peg_vs_sector dividend_yield_vs_sector
## 1   Undervalued  Undervalued   Undervalued              Undervalued
## 2   Undervalued  Undervalued   Undervalued              Undervalued
## 3   Undervalued  Undervalued    Overvalued               Overvalued
## 4   Undervalued  Undervalued   Undervalued              Undervalued
## 5   Undervalued  Undervalued   Undervalued              Undervalued
## 6   Undervalued   Overvalued   Undervalued              Undervalued
## 7   Undervalued   Overvalued   Undervalued              Undervalued
## 8   Undervalued           --   Undervalued              Undervalued
## 9   Undervalued  Undervalued   Undervalued              Undervalued
## 10  Undervalued  Undervalued   Undervalued               Overvalued
## 11  Undervalued   Overvalued   Undervalued              Undervalued
## 12  Undervalued  Undervalued   Undervalued              Undervalued
## 13  Undervalued   Overvalued    Overvalued              Undervalued
## 14  Undervalued  Undervalued   Undervalued              Undervalued
## 15  Undervalued  Undervalued   Undervalued              Undervalued
## 16  Undervalued  Undervalued   Undervalued              Undervalued
## 17  Undervalued  Undervalued   Undervalued              Undervalued
## 18  Undervalued   Overvalued   Undervalued              Undervalued
## 19  Undervalued  Undervalued   Undervalued              Undervalued
## 20  Undervalued  Undervalued   Undervalued              Undervalued
## 21  Undervalued  Undervalued   Undervalued                       --
## 22  Undervalued  Undervalued   Undervalued                       --
## 23  Undervalued  Undervalued   Undervalued              Undervalued
## 24  Undervalued  Undervalued   Undervalued              Undervalued
## 25  Undervalued  Undervalued   Undervalued              Undervalued
## 26  Undervalued  Undervalued   Undervalued              Undervalued
## 27  Undervalued   Overvalued   Undervalued              Undervalued
## 28  Undervalued  Undervalued   Undervalued              Undervalued
## 29  Undervalued   Overvalued            --              Undervalued
## 30  Undervalued  Undervalued   Undervalued              Undervalued
## 31  Undervalued   Overvalued   Undervalued              Undervalued
## 32  Undervalued   Overvalued   Undervalued              Undervalued
## 33  Undervalued   Overvalued   Undervalued              Undervalued
## 34  Undervalued   Overvalued   Undervalued              Undervalued
## 35  Undervalued   Overvalued   Undervalued              Undervalued
## 36  Undervalued  Undervalued    Overvalued              Undervalued
## 37  Undervalued  Undervalued   Undervalued              Undervalued
## 38  Undervalued  Undervalued   Undervalued              Undervalued
## 39  Undervalued  Undervalued    Overvalued              Undervalued
## 40  Undervalued   Overvalued   Undervalued               Overvalued
##    roe_vs_sector yoy_growth_vs_sector qoq_growth_vs_sector roa_vs_sector
## 1    Undervalued                   NA                   NA            NA
## 2     Overvalued                   NA                   NA            NA
## 3    Undervalued                   NA                   NA            NA
## 4     Overvalued                   NA                   NA            NA
## 5    Undervalued                   NA                   NA            NA
## 6    Undervalued                   NA                   NA            NA
## 7    Undervalued                   NA                   NA            NA
## 8    Undervalued                   NA                   NA            NA
## 9    Undervalued                   NA                   NA            NA
## 10   Undervalued                   NA                   NA            NA
## 11   Undervalued                   NA                   NA            NA
## 12   Undervalued                   NA                   NA            NA
## 13   Undervalued                   NA                   NA            NA
## 14   Undervalued                   NA                   NA            NA
## 15   Undervalued                   NA                   NA            NA
## 16    Overvalued                   NA                   NA            NA
## 17    Overvalued                   NA                   NA            NA
## 18   Undervalued                   NA                   NA            NA
## 19   Undervalued                   NA                   NA            NA
## 20   Undervalued                   NA                   NA            NA
## 21   Undervalued                   NA                   NA            NA
## 22   Undervalued                   NA                   NA            NA
## 23   Undervalued                   NA                   NA            NA
## 24   Undervalued                   NA                   NA            NA
## 25   Undervalued                   NA                   NA            NA
## 26   Undervalued                   NA                   NA            NA
## 27   Undervalued                   NA                   NA            NA
## 28    Overvalued                   NA                   NA            NA
## 29   Undervalued                   NA                   NA            NA
## 30   Undervalued                   NA                   NA            NA
## 31   Undervalued                   NA                   NA            NA
## 32   Undervalued                   NA                   NA            NA
## 33   Undervalued                   NA                   NA            NA
## 34   Undervalued                   NA                   NA            NA
## 35   Undervalued                   NA                   NA            NA
## 36   Undervalued                   NA                   NA            NA
## 37   Undervalued                   NA                   NA            NA
## 38   Undervalued                   NA                   NA            NA
## 39   Undervalued                   NA                   NA            NA
## 40   Undervalued                   NA                   NA            NA
##    dividend_yield payout_ratio
## 1           4.49%         96 %
## 2           4.32%         94 %
## 3           2.23%         40 %
## 4           3.83%         72 %
## 5           5.32%         87 %
## 6           3.91%         88 %
## 7           3.46%         68 %
## 8           3.44%         68 %
## 9           3.58%         58 %
## 10          2.76%         49 %
## 11          4.14%         72 %
## 12          3.82%         67 %
## 13          3.62%         76 %
## 14          3.78%         79 %
## 15          4.81%         91 %
## 16          4.32%        101 %
## 17          4.81%        108 %
## 18          4.70%         49 %
## 19          4.30%         87 %
## 20          4.18%         93 %
## 21          0.00%          0 %
## 22          0.00%          0 %
## 23          3.34%        144 %
## 24          2.46%        214 %
## 25          1.26%         76 %
## 26          1.71%        108 %
## 27          2.19%         95 %
## 28          1.70%         61 %
## 29          1.21%         53 %
## 30          1.55%         58 %
## 31          0.80%         40 %
## 32          1.03%         47 %
## 33          0.82%         34 %
## 34          0.99%         49 %
## 35          5.06%        200 %
## 36          1.28%         46 %
## 37          1.25%         49 %
## 38          1.07%         44 %
## 39          1.09%         40 %
## 40          0.58%         27 %
filter(all_undervalued,ratios_summary=="Strong")
##    symbol ratios_summary             sector daily_gain  ltp   pe  pb     roe
## 1     KBL         Strong   Commercial Banks        0 %  312 21.4 2.3 11.97 %
## 2    BOKL         Strong   Commercial Banks    -0.66 %  301 16.4 1.8 12.02 %
## 3     SBL         Strong   Commercial Banks    -0.71 %  419 16.3 2.3  16.3 %
## 4    JBBL         Strong  Development Banks    -0.38 %  262 17.5 2.0 12.29 %
## 5   SADBL         Strong  Development Banks    -0.42 %  237 20.8 1.8  9.11 %
## 6   SHINE         Strong  Development Banks     0.75 %  270 18.9 1.9 11.16 %
## 7    RLFL         Strong            Finance    -0.41 %  245 20.3 1.7  9.77 %
## 8    SIFC         Strong            Finance        0 %  252 22.2 2.0  8.94 %
## 9    NGPL         Strong        Hydro Power     9.38 %  315 43.0 2.9  6.84 %
## 10  HIDCL         Strong         INVESTMENT    -0.41 %  487 86.8 4.5  6.02 %
## 11  SLICL         Strong     Life Insurance    -0.95 %  838 60.8 6.3 10.65 %
## 12   PLIC         Strong     Life Insurance    -0.45 %  876 63.0 6.7 10.41 %
## 13  SKBBL         Strong       Microfinance    -0.88 % 1695 37.6 6.5 18.88 %
## 14   NICL         Strong Non Life Insurance      0.5 %  799 39.4 4.9 12.46 %
## 15    EIC         Strong Non Life Insurance       -1 %  790 41.1 4.9 12.66 %
##       roa   peg discount_from_graham_number dividend_yield payout_ratio
## 1   1.28%  1.75                         48%          4.49%         96 %
## 2   1.54%  1.00                         15%          5.32%         87 %
## 3      0%  1.29                         29%          3.58%         58 %
## 4   1.21%  0.70                         24%          3.82%         67 %
## 5   0.83% -5.38                         28%          3.78%         79 %
## 6   1.33%  1.38                         28%          4.81%         91 %
## 7   1.72% -3.56                         25%          4.30%         87 %
## 8   1.55%  0.89                         39%          4.18%         93 %
## 9   4.58%  1.72                        137%          3.34%        144 %
## 10  4.78%  3.47                        315%          2.46%        214 %
## 11  2.98%  2.43                        313%          1.26%         76 %
## 12  2.27%  2.52                        332%          1.71%        108 %
## 13  2.28%  1.64                        230%          1.55%         58 %
## 14 13.27%  1.58                        194%          1.25%         49 %
## 15 12.66%  1.65                        199%          1.07%         44 %
##    dividend_yield_num
## 1                4.49
## 2                5.32
## 3                3.58
## 4                3.82
## 5                3.78
## 6                4.81
## 7                4.30
## 8                4.18
## 9                3.34
## 10               2.46
## 11               1.26
## 12               1.71
## 13               1.55
## 14               1.25
## 15               1.07
library(writexl)
## Warning: package 'writexl' was built under R version 4.0.5
write_xlsx(pe_undervalued,"C:/Users/Dell/Desktop/NEPSE/PE undervalued.xlsx")
write_xlsx(all_undervalued,"C:/Users/Dell/Desktop/NEPSE/ALL undervalued.xlsx")
write_xlsx(nepse_d,"C:/Users/Dell/Desktop/NEPSE/Nepse today.xlsx")

write_xlsx(nepse_d, "C:/Users/Dell/Desktop/NEPSE/NEPSE today.xlsx")

banks <- filter(nepse_cleaned, nepse_cleaned$sector== "Commercial Banks")
NEPSE_Extract <- list("NEPSE TODAY" = nepse_d, "BANKS" = banks, "All undervalued" = all_undervalued,"three_undervalued"=three_undervalued, "pe_undervalued" = pe_undervalued ) #assume sheet1 and sheet2 are data frames
write_xlsx(NEPSE_Extract, "C:/Users/Dell/Desktop/NEPSE/NEPSE_Extract.xlsx")

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.