 Hi. In this video, I'll introduce a package that can help us investigate the growth and evolution of the dependencies of CRANK packages. If you go to the page on CRANK that lists all the packages, you will find quite a few that enable us to manage dependencies on our home machine. Most of these packages have the prefix PKG. Another useful ones include PACKRAT, DEEPDAP and PACK. The package CRANKDAP is not intended to reinvent the wheel, but more for analyzing the package dependencies from the VIRT eyes view. Therefore, we have created functions to obtain different kinds of dependencies, both as a data frame and as a graph object. We focus on the two functions that return dependencies of all packages. The function GETDAPAllPackages returns all types of dependencies of all packages in the data frame. The summaries on the right show the total number of packages and the total number of dependencies at the time of this video being recorded. As we have used this function to collect the data over the last two years, we will look at how the dependencies have grown over the years to the number at the bottom. This is a breakdown of the dependencies into different types and in the forward and reverse directions. A few observations can be made from this plot. First, imports linking to and suggests have grown steadily, but depends has gone down before going up again. This may have to do with more package these days preferring imports to depends. Second, there is a big jump for all the turquoise lines in February 2020, which represent reverse dependencies. I think this is due to external reverse dependencies being included from that time point. The third observation is that there are visible differences between the forward and reverse dependencies. To examine the differences, we first remove the intersection, which is the black line in each plot. After doing so, we found that the forward dependencies include defunct packages, while the reverse dependencies include external packages, such as bioconductor ones. So if the assignment line is higher than the turquoise line, it means that there are more defunct packages in the forward direction than external dependencies in the reverse direction. And this is the case for depends and imports. Going further than just looking at the total number, we can obtain the network of dependencies using the function gets graph of packages. We can see that there are almost 5000 packages with over 8000 depends between them. Also, this network is, as expected, a directed acyclic graph because of the nature of strong dependencies. If we plot this network, you can see quite some clustering of packages into various communities. Of course, this is not the complete picture as we have only used the type depends. But this gives us a glimpse of the ecosystem of cranked packages. We also look at the distribution of the network degrees. The out-degree is not very interesting, but the in-degree seems to follow the power law, which has been observed in some other real-life networks. What can be done next is the modeling of the growth of the dependency network by improving our current analysis on two ends. On the data end, we will include all three types of strong dependencies. On the modeling end, we can investigate how new dependencies are created and if the preferential attachment model is a suitable model. Because it is a model that leads to the power law degree distribution in networks. Thank you very much for listening.