From 1c0db49931655b5b9cd987cc20ebd5ed351ce25d Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sun, 3 Oct 2021 21:44:13 -0500 Subject: [PATCH 01/30] feat: section1 - Translate main readme file to spanish [ES] --- .../translations/README.es.md | 165 ++++++++++++++++++ 1-Introduction/translations/README.es.md | 19 ++ 2 files changed, 184 insertions(+) diff --git a/1-Introduction/01-defining-data-science/translations/README.es.md b/1-Introduction/01-defining-data-science/translations/README.es.md index e69de29b..873ad74f 100644 --- a/1-Introduction/01-defining-data-science/translations/README.es.md +++ b/1-Introduction/01-defining-data-science/translations/README.es.md @@ -0,0 +1,165 @@ +# Defining Data Science + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png)| +|:---:| +|Defining Data Science - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +--- + +[![Defining Data Science Video](images/video-def-ds.png)](https://youtu.be/pqqsm5reGvs) + +## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) + +## What is Data? +In our everyday life, we are constantly surrounded by data. The text you are reading now is data, the list of phone numbers of your friends in your smartphone is data, as well as the current time displayed on your watch. As human beings, we naturally operate with data by counting the money we have or writing letters to our friends. + +However, data became much more critical with the creation of computers. The primary role of computers is to perform computations, but they need data to operate on. Thus, we need to understand how computers store and process data. + +With the emergence of the Internet, the role of computers as data handling devices increased. If you think of it, we now use computers more and more for data processing and communication, rather than actual computations. When we write an e-mail to a friend or search for some information on the Internet - we are essentially creating, storing, transmitting, and manipulating data. +> Can you remember the last time you have used computers to actually compute something? + +## What is Data Science? + +In [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Data Science** is defined as *a scientific field that uses scientific methods to extract knowledge and insights from structured and unstructured data, and apply knowledge and actionable insights from data across a broad range of application domains*. + +This definition highlights the following important aspects of data science: + +* The main goal of data science is to **extract knowledge** from data, in order words - to **understand** data, find some hidden relationships and build a **model**. +* Data science uses **scientific methods**, such as probability and statistics. In fact, when the term *data science* was first introduced, some people argued that data science is just a new fancy name for statistics. Nowadays it has become evident that the field is much broader. +* Obtained knowledge should be applied to produce some **actionable insights**. +* We should be able to operate on both **structured** and **unstructured** data. We will come back to discuss different types of data later in the course. +* **Application domain** is an important concept, and data scientist often needs at least some degree of expertise in the problem domain. + +> Another important aspect of Data Science is that it studies how data can be gathered, stored and operated upon using computers. While statistics gives us mathematical foundations, data science applies mathematical concepts to actually draw insights from data. + +One of the ways (attributed to [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) to look at the data science is to consider it to be a separate paradigm of science: +* **Empyrical**, in which we rely mostly on observations and results of experiments +* **Theoretical**, where new concepts emerge from existing scientific knowledge +* **Computational**, where we discover new principles based on some computational experiments +* **Data-Driven**, based on discovering relationships and patterns in the data + +## Other Related Fields + +Since data is a pervasive concept, data science itself is also a broad field, touching many other related disciplines. + +
+
Databases
+
+The most obvious thing to consider is **how to store** the data, i.e. how to structure them in a way that allows faster processing. There are different types of databases that store structured and unstructured data, which [we will consider in our course](../../2-Working-With-Data/README.md). +
+
Big Data
+
+Often we need to store and process really large quantities of data with relatively simple structure. There are special approaches and tools to store that data in a distributed manner on a computer cluster, and process them efficiently. +
+
Machine Learning
+
+One of the ways to understand the data is to **build a model** that will be able to predict desired outcome. Being able to learn such models from data is the area studied in **machine learning**. You may want to have a look at our [Machine Learning for Beginners](https://github.com/microsoft/ML-For-Beginners/) Curriculum to get deeper into that field. +
+
Artificial Intelligence
+
+As machine learning, artificial intelligence also relies on data, and it involves building high complexity models that will exhibit the behavior similar to a human being. Also, AI methods often allow us to turn unstructured data (eg. natural language) into structured by extracting some insights. +
+
Visualization
+
+Vast amounts of data are incomprehensible for a human being, but once we create useful visualizations - we can start making much more sense of data, and drawing some conclusions. Thus, it is important to know many ways to visualize information - something that we will cover in [Section 3](../../3-Data-Visualization/README.md) of our course. Related fields also include **Infographics**, and **Human-Computer Interaction** in general. +
+
+ +## Types of Data + +As we have already mentioned - data is everywhere, we just need to capture it in the right way! It is useful to distinguish between **structured** and **unstructured** data. The former are typically represented in some well-structured form, often as a table or number of tables, while latter is just a collection of files. Sometimes we can also talk about **semistructured** data, that have some sort of a structure that may vary greatly. + +| Structured | Semi-structured | Unstructured | +|----------- |-----------------|--------------| +| List of people with their phone numbers | Wikipedia pages with links | Text of Encyclopaedia Britannica | +| Temperature in all rooms of a building at every minute for the last 20 years | Collection of scientific papers in JSON format with authors, data of publication, and abstract | File share with corporate documents | +| Data for age and gender of all people entering the building | Internet pages | Raw video feed from surveillance camera | + +## Where to get Data + +There are many possible sources of data, and it will be impossible to list all of them! However, let's mention some of the typical places where you can get data: + +* **Structured** + - **Internet of Things**, including data from different sensors, such as temperature or pressure sensors, provides a lot of useful data. For example, if an office building is equipped with IoT sensors, we can automatically control heating and lighting in order to minimize costs. + - **Surveys** that we ask users after purchase of a good, or after visiting a web site. + - **Analysis of behavior** can, for example, help us understand how deeply a user goes into a site, and what is the typical reason for leaving the site. +* **Unstructured** + - **Texts** can be a rich source of insights, starting from overall **sentiment score**, up to extracting keywords and even some semantic meaning. + - **Images** or **Video**. A video from surveillance camera can be used to estimate traffic on the road, and inform people about potential traffic jams. + - Web server **Logs** can be used to understand which pages of our site are most visited, and for how long. +* Semi-structured + - **Social Network** graph can be a great source of data about user personality and potential effectiveness in spreading information around. + - When we have a bunch of photographs from a party, we can try to extract **Group Dynamics** data by building a graph of people taking pictures with each other. + +By knowing different possible sources of data, you can try to think about different scenarios where data science techniques can be applied to know the situation better, and to improve business processes. + +## What you can do with Data + +In Data Science, we focus on the following steps of data journey: + +
+
1) Data Acquisition
+
+First step is to collect the data. While in many cases it can be a straightforward process, like data coming to a database from web application, sometimes we need to use special techniques. For example, data from IoT sensors can be overwhelming, and it is a good practice to use buffering endpoints such as IoT Hub to collect all the data before further processing. +
+
2) Data Storage
+
+Storing the data can be challenging, especially if we are talking about big data. When deciding how to store data, it makes sense to anticipate the way you would want later on to query them. There are several ways data can be stored: +
    +
  • Relational database stores a collection of tables, and uses a special language called SQL to query them. Typically, tables would be connected to each other using some schema. In many cases we need to convert the data from original form to fit the schema.
  • +
  • NoSQL database, such as CosmosDB, does not enforce schema on data, and allows storing more complex data, for example, hierarchical JSON documents or graphs. However, NoSQL database does not have rich querying capabilities of SQL, and cannot enforce referential integrity between data.
  • +
  • Data Lake storage is used for large collections of data in raw form. Data lakes are often used with big data, where all data cannot fit into one machine, and has to be stored and processed by a cluster. Parquet is the data format that is often used in conjunction with big data.
  • +
+
+
3) Data Processing
+
+This is the most exciting part of data journey, which involved processing the data from its original form to the form that can be used for visualization/model training. When dealing with unstructured data such as text or images, we may need to use some AI techniques to extract **features** from the data, thus converting it to structured form. +
+
4) Visualization / Human Insights
+
+Often to understand the data we need to visualize them. Having many different visualization techniques in our toolbox we can find the right view to make an insight. Often, data scientist needs to "play with data", visualizing it many times and looking for some relationships. Also, we may use techniques from statistics to test some hypotheses or prove correlation between different pieces of data. +
+
5) Training predictive model
+
+Because the ultimate goal of data science is to be able to take decisions based on data, we may want to use the techniques of Machine Learning to build predictive model that will be able to solve our problem. +
+
+ +Of course, depending on the actual data some steps might be missing (eg., when we already have the data in the database, or when we do not need model training), or some steps might be repeated several times (such as data processing). + +## Digitalization and Digital Transformation + +In the last decade, many businesses started to understand the importance of data when making business decisions. To apply data science principles to running a business one first needs to collect some data, i.e. somehow turn business processes into digital form. This is known as **digitalization**, and followed by using data science techniques to guide decisions it often leads to significant increase of productivity (or even business pivot), called **digital transformation**. + +Let's consider an example. Suppose, we have a data science course (like this one), which we deliver online to students, and we want to use data science to improve it. How can we do it? + +We can start with thinking "what can be digitized?". The simplest way would be to measure time it takes each student to complete each module, and the obtained knowledge (eg. by giving multiple-choice test at the end of each module). By averaging time-to-complete across all students, we can find out which modules cause the most problems to students, and work on simplifying them. + +> You may argue that this approach is not ideal, because modules can be of different length. It is probably more fair to divide the time by the length of the module (in number of characters), and compare those values instead. + +When we start analyzing results of multiple-choice tests, we can try to find out specific concepts that students understand poorly, and improve the content. To do that, we need to design tests in such a way that each question maps to a certain concept or chunk of knowledge. + +If we want to get even more complicated, we can plot the time taken for each module against the age category of students. We might find out that for some age categories it takes inappropriately long time to complete the module, or students drop out at certain point. This can help us provide age recommendation for the module, and minimize people's dissatisfaction from wrong expectations. + +## 🚀 Challenge + +In this challenge, we will try to find concepts relevant to the field of Data Science by looking at texts. We will take Wikipedia article on Data Science, download and process the text, and then build a word cloud like this one: + +![Word Cloud for Data Science](images/ds_wordcloud.png) + +Visit [`notebook.ipynb`](notebook.ipynb) to read through the code. You can also run the code, and see how it performs all data transformations in real time. + +> If you do not know how to run code in Jupyter Notebook, have a look at [this article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + + + +## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/1) + +## Assignments + +* **Task 1**: Modify the code above to find out related concepts for the fields of **Big Data** and **Machine Learning** +* **Task 2**: [Think About Data Science Scenarios](assignment.md) + +## Credits + +This lesson has been authored with ♥️ by [Dmitry Soshnikov](http://soshnikov.com) diff --git a/1-Introduction/translations/README.es.md b/1-Introduction/translations/README.es.md index e69de29b..e905bf11 100644 --- a/1-Introduction/translations/README.es.md +++ b/1-Introduction/translations/README.es.md @@ -0,0 +1,19 @@ +# Introduction to Data Science + +![Datos en acción](images/data.jpg) +> Fotografía de Stephen Dawson en Unsplash + +En estas lecciones descubrirás cómo se define la Ciencia de Datos y aprenderás acerca de +las cosideraciones éticas que deben ser tomadas por un científico de datos. También aprenderás +cómo se definen los datos y un poco de probabilidad y estadística, el núcleo académico de la Ciencia de Datos. + +### Temas + +1. [Definiendo la Ciencia de Datos](01-defining-data-science/README.md) +2. [Ética de la Ciencia de Datos](02-ethics/README.md) +3. [Definición de Datos](03-defining-data/README.md) +4. [introducción a la probabilidad y estadística](04-stats-and-probability/README.md) + +### Créditos + +Éstas lecciones fueron escritas con ❤️ por [Nitya Narasimhan](https://twitter.com/nitya) y [Dmitry Soshnikov](https://twitter.com/shwars). From 40706007057840bca37292598e90a12aea7c6133 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 4 Oct 2021 19:50:05 -0500 Subject: [PATCH 02/30] feat: Translation for module 1 section 1wq --- .../translations/README.es.md | 190 +++++++++--------- 1 file changed, 100 insertions(+), 90 deletions(-) diff --git a/1-Introduction/01-defining-data-science/translations/README.es.md b/1-Introduction/01-defining-data-science/translations/README.es.md index 873ad74f..20011f7c 100644 --- a/1-Introduction/01-defining-data-science/translations/README.es.md +++ b/1-Introduction/01-defining-data-science/translations/README.es.md @@ -1,165 +1,175 @@ -# Defining Data Science +# Definiendo la Ciencia de Datos -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png)| +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png)| |:---:| -|Defining Data Science - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +|Definiendo la Ciencia de Datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | --- -[![Defining Data Science Video](images/video-def-ds.png)](https://youtu.be/pqqsm5reGvs) +[![Video definiendo la Ciencia de Datos](images/video-def-ds.png)](https://youtu.be/pqqsm5reGvs) -## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) +## [Examen previo a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) -## What is Data? -In our everyday life, we are constantly surrounded by data. The text you are reading now is data, the list of phone numbers of your friends in your smartphone is data, as well as the current time displayed on your watch. As human beings, we naturally operate with data by counting the money we have or writing letters to our friends. +## ¿Qué son los Datos? +En nuestra vida diaria, estamos constantemente rodeados por datos. El texto que estás leyendo ahora son datos, +la lista de números telefónicos de tus amigos en tu móvil son datos, también como la hora actual que se muestra en tu reloj. +Como seres humanos, operamos naturalmente con datos, contando el dinero que tenemos o escribiendo cartas a nuestros amigos. -However, data became much more critical with the creation of computers. The primary role of computers is to perform computations, but they need data to operate on. Thus, we need to understand how computers store and process data. +Sin embargo, los datos se vuelven más críticos con la creación de las computadoras. El rol principal de las computadoras +es realizar cálculos, pero éstas necesitan datos para operar. Por lo cual, necesitamos entender cómo las computadoras +almacenan y procesan los datos. -With the emergence of the Internet, the role of computers as data handling devices increased. If you think of it, we now use computers more and more for data processing and communication, rather than actual computations. When we write an e-mail to a friend or search for some information on the Internet - we are essentially creating, storing, transmitting, and manipulating data. -> Can you remember the last time you have used computers to actually compute something? +Con el surgimiento de internet, el rol de las computadoras como dispositivos para la manipulación de datos incrementó. +Si lo piensas, ahora usamos computadoras mucho más para la comunicación y el procesamiento de datos, en lugar de para hacer cálculos. Cuando escribimos un correo electrónico a un amigo o buscamos alguna información en internet - estamos +creando, almacenando, transmitiendo y manipulando datos. -## What is Data Science? +> ¿Recuerdas la última vez que usaste una computadora para realmente calcular algo? -In [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Data Science** is defined as *a scientific field that uses scientific methods to extract knowledge and insights from structured and unstructured data, and apply knowledge and actionable insights from data across a broad range of application domains*. +## ¿Qué es Ciencia de Datos? -This definition highlights the following important aspects of data science: +En [Wikipedia](https://en.wikipedia.org/wiki/Data_science), se define la **Ciencia de Datos** como *un campo de las ciencias que usa métodos científicos para extraer conocimiento y perspectivas de datos estructurados y no estructurados, y +aplicar el conocimiento y conocimiento práctico de los datos a través de un amplio rango de dominios de aplicación*. -* The main goal of data science is to **extract knowledge** from data, in order words - to **understand** data, find some hidden relationships and build a **model**. -* Data science uses **scientific methods**, such as probability and statistics. In fact, when the term *data science* was first introduced, some people argued that data science is just a new fancy name for statistics. Nowadays it has become evident that the field is much broader. -* Obtained knowledge should be applied to produce some **actionable insights**. -* We should be able to operate on both **structured** and **unstructured** data. We will come back to discuss different types of data later in the course. -* **Application domain** is an important concept, and data scientist often needs at least some degree of expertise in the problem domain. +Ésta definición destaca los siguientes aspectos importantes para la ciencia de datos: -> Another important aspect of Data Science is that it studies how data can be gathered, stored and operated upon using computers. While statistics gives us mathematical foundations, data science applies mathematical concepts to actually draw insights from data. +* El objetivo principal para la ciencia de datos es **extraer conocimiento** de los datos, en otras palabras - **entender** los datos, encontrar relaciones ocultas y construir un **modelo**. +* La ciencia de datos usa **métodos científicos**, como la probabilidad y estadística. De hecho, cuando el término **ciencia de datos** fue usado por primera vez, algunas personas argumentaron que la ciencia de datos era solo un nuevo nombre elegante para estadística. En estos días se ha vuelto evidente que es un campo mucho más amplio. +* El conocimiento obtenido puede ser aplicado para producir **conocimiento práctico**. +* Seremos capace de operar tanto datos **estructurados** y **no estructurados**. Más adelante en el curso discutiremos los diferentes tupos de datos. +* El **dominio de la aplicación** es un concepto importante, y un científico de datos necesita al menos cierta experiencia en el dominio del problema. -One of the ways (attributed to [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) to look at the data science is to consider it to be a separate paradigm of science: -* **Empyrical**, in which we rely mostly on observations and results of experiments -* **Theoretical**, where new concepts emerge from existing scientific knowledge -* **Computational**, where we discover new principles based on some computational experiments -* **Data-Driven**, based on discovering relationships and patterns in the data +> Otro aspecto importante de la Ciencia de Datos es que esta estudia como los datos son obtenidos, almacenados y operados usando computadoras. Mientras la estadística nos da los fundamentos matemáticos, la ciencia de datos aplica los conceptos matemáticos para realmente extraer conocimiento de los datos. -## Other Related Fields +Una de las formas (atribuidas a [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) de ver a la ciencia de datos es considerarla como un paradigma separado de la ciencia: +* **Empírica**, en la que confíamos mayormente en observaciones y resultados de experimientos +* **Teórica**, donde surgen nuevos conceptos desde el conocimiento científico existente +* **Computacional**, donde descubrimos nuevos principios basados en algunos experimentos computacionales +* **Dirigidos por datos**, basados en el descubrimiento de relaciones y patrones en los datos -Since data is a pervasive concept, data science itself is also a broad field, touching many other related disciplines. +## Otros campos relacionados + +Ya que los datos son un concepto predominante, la ciencia de datos en sí misma también es un amplio campo, abarcando muchas otras disciplinas relacionadas.
-
Databases
+
Bases de datos
-The most obvious thing to consider is **how to store** the data, i.e. how to structure them in a way that allows faster processing. There are different types of databases that store structured and unstructured data, which [we will consider in our course](../../2-Working-With-Data/README.md). +La cosa más obvia a considerar es **cómo almacenar** los datos, por ejemplo como estructurarlos de tal formar que se procesen más rápido. Existen distintos tipos de bases de datos que almacenan datos estructurados y no estructurados, los +cuales [consideraremos en este curso] (../../2-Working-With-Data/README.md).
Big Data
-Often we need to store and process really large quantities of data with relatively simple structure. There are special approaches and tools to store that data in a distributed manner on a computer cluster, and process them efficiently. +Usualmente necesitamos almacenar y procesar enormes cantidades de datos con estructuras relativamente simples. Existen +formas especiales y herramientas para almacenar los datos en una forma distribuida on un clúster de computadoras, y procesarlas eficientemente.
-
Machine Learning
+
Aprendizaje automático
-One of the ways to understand the data is to **build a model** that will be able to predict desired outcome. Being able to learn such models from data is the area studied in **machine learning**. You may want to have a look at our [Machine Learning for Beginners](https://github.com/microsoft/ML-For-Beginners/) Curriculum to get deeper into that field. +Una de las formas de entender los datos es **construir un modelo** que será capaz de predecir el resultado deseado. Ser capaz de aprender esos modelos de los datos es el área de estudio del **aprendizaje automático**. Querrás dar un vistazo a nuestro currículum de [Aprendizaje automático para principiantes](https://github.com/microsoft/ML-For-Beginners/) para profundizar en ese campo.
-
Artificial Intelligence
+
Inteligencia aritifcial
-As machine learning, artificial intelligence also relies on data, and it involves building high complexity models that will exhibit the behavior similar to a human being. Also, AI methods often allow us to turn unstructured data (eg. natural language) into structured by extracting some insights. +Así como el aprendizaje automático, la inteligencia artificial también depende de los datos, e involucra la construcción de modelos altamente complejos que expondrán un comportamiento similar a un ser humano. Además, los métodos de AI usualmente nos permiten convertir datos no estructurados (por ejemplo, lenguaje natural) en datos estructurados extrayendo conocimiento útil.
-
Visualization
+
Visualización
-Vast amounts of data are incomprehensible for a human being, but once we create useful visualizations - we can start making much more sense of data, and drawing some conclusions. Thus, it is important to know many ways to visualize information - something that we will cover in [Section 3](../../3-Data-Visualization/README.md) of our course. Related fields also include **Infographics**, and **Human-Computer Interaction** in general. +Cantidades descomunales de datos son incomprensibles para un ser humano, pero una vez que creamos visualizaciones útiles - podemos iniciar haciendo más sentido de los datos, y extrayendo algunas conclusiones. Por lo tanto, es importante conocer diversas formas de visualizar la información - lo cual cubriremos en la [Sección 3](../../3-Data-Visualization/README.md) de nuestro curso. Campos relacionados incluyen **infografías**, e **interacción humano-computadora** en general.
-## Types of Data +## Tipos de datos -As we have already mentioned - data is everywhere, we just need to capture it in the right way! It is useful to distinguish between **structured** and **unstructured** data. The former are typically represented in some well-structured form, often as a table or number of tables, while latter is just a collection of files. Sometimes we can also talk about **semistructured** data, that have some sort of a structure that may vary greatly. +Como ya se ha mencionado - los datos están en todas partes, ¡sólo necesitamos capturarlos en la forma correcta! Es útil distinguir entre datos **estructurados** y **no estructurados**. Los primeros típicamente son representados en una forma bien estructurada, usualmente como una tabla o conunto de tablas, mientras que los últimos es sólo una colección de archivos. Algunas veces podemos hablar de datos **semi-estructurados**, que tienen cierta estructura la cual podría variar mucho. -| Structured | Semi-structured | Unstructured | -|----------- |-----------------|--------------| -| List of people with their phone numbers | Wikipedia pages with links | Text of Encyclopaedia Britannica | -| Temperature in all rooms of a building at every minute for the last 20 years | Collection of scientific papers in JSON format with authors, data of publication, and abstract | File share with corporate documents | -| Data for age and gender of all people entering the building | Internet pages | Raw video feed from surveillance camera | +| Estructurado | Semi-estructurado | No estructurado | +|------------- |-------------------|-----------------| +| Lista de personas con sus números telefónicos | Páginas de wikipedia con enlaces | Texto de la enciclopedia Británica | +| Temperatura en todas las habitaciones de un edificio a cada minuto por los últimos 20 años | Colección de documentos científicos en formato JSON con autores, fecha de publicación, y resumen | Recurso compartido de archivos con documentos corporativos | +| Datos por edad y género de todas las personas que entrar al edificio | Páginas de internet | Vídeo sin procesar de cámara de vigilancia | -## Where to get Data +## Dónde obtener datos -There are many possible sources of data, and it will be impossible to list all of them! However, let's mention some of the typical places where you can get data: +Hay múltiples fuentes de datos, y ¡sería imposible listarlas todas! Sin embargo, mencionemos algunos de los lugares típicos en dónde obtener datos: -* **Structured** - - **Internet of Things**, including data from different sensors, such as temperature or pressure sensors, provides a lot of useful data. For example, if an office building is equipped with IoT sensors, we can automatically control heating and lighting in order to minimize costs. - - **Surveys** that we ask users after purchase of a good, or after visiting a web site. - - **Analysis of behavior** can, for example, help us understand how deeply a user goes into a site, and what is the typical reason for leaving the site. -* **Unstructured** - - **Texts** can be a rich source of insights, starting from overall **sentiment score**, up to extracting keywords and even some semantic meaning. - - **Images** or **Video**. A video from surveillance camera can be used to estimate traffic on the road, and inform people about potential traffic jams. - - Web server **Logs** can be used to understand which pages of our site are most visited, and for how long. -* Semi-structured - - **Social Network** graph can be a great source of data about user personality and potential effectiveness in spreading information around. - - When we have a bunch of photographs from a party, we can try to extract **Group Dynamics** data by building a graph of people taking pictures with each other. +* **Estructurados** + - **Internet de las cosas**, incluyendo datos de distintos sensore, como sensores de temperatura o presión, proveen muchos datos útiles. Por ejemplo, si una oficina es equipada con sensores IoT, podemos controlar automáticamente la calefacción e iluminación para minimizar costos. + - **Encuestas** que realizamos a los usuarios después de pagar un producto o después de visitar un sitio web. + - **Análisis de comportamiento** podemos, por ejemplo, ayudarnos a entender que tanto profundiza un usuario en un sitio, y cuál es la razón típica por la cual lo deja. +* **No estructurados** + - Los **Textos** pueden ser una fuente rica en conocimiento práctico, empezando por el **sentimiento principal** generalizado, hasta la extracción de palabras clave e incluso algún significado semántico. + - **Imágenes** o **Video**. Un video de una cámara de vigilancia puede ser usado para estimar el tráfico en carretera, e informar a las personas acerca de posibles embotellamientos. + - **Bitácoras** de servidores web pueden ser usadas para entender qué páginas de nuestro sitio son las más visitadas y por cuánto tiempo. +* **Semi-estructurados** + - Grafos de **redes sociales** pueden ser una gran fuente de datos acerca de la la personalidad del usuario y efectividad potencial de difusión de la información. + - Cuando tenemos un conjunto de fotografías de una fiesta, podemos intentar extraer datos de la **dinámica de grupos** construyendo un grafo de personas tomándose fotos unas a otras. -By knowing different possible sources of data, you can try to think about different scenarios where data science techniques can be applied to know the situation better, and to improve business processes. +Conociendo posibles fuentes de datos diversas, puedes intentar pensar en distintos escenarios donde se pueden aplicar técnicas de ciencia de datos para conocer mejor la situación, y mejroar los procesos de negocio. -## What you can do with Data +## Qué puedes hacer con los datos -In Data Science, we focus on the following steps of data journey: +En la ciencia de datos, nos enfocamos en los siguientes pasos del viaje de los datos:
-
1) Data Acquisition
+
1) Adquisición de datos
-First step is to collect the data. While in many cases it can be a straightforward process, like data coming to a database from web application, sometimes we need to use special techniques. For example, data from IoT sensors can be overwhelming, and it is a good practice to use buffering endpoints such as IoT Hub to collect all the data before further processing. +El primer paso es reunir los datos. Mientras que en muchos casos esto puede ser un proceso simple, como datos obtenidos des una base de datos de una aplicación web. algunas veces necesitamos usar técnicas especiales. Por ejemplo, los datos obtenidos desde sensorres IoT pueden ser inmensos, y es una buena práctica el uso de endpoints búfer como IoT Hub para para reunir todos los datos antes de procesarlos.
-
2) Data Storage
+
2) Almacenamiento de datos
-Storing the data can be challenging, especially if we are talking about big data. When deciding how to store data, it makes sense to anticipate the way you would want later on to query them. There are several ways data can be stored: +Almacenar los datos puede ser desafiante, especialmente si hablamos de big data. Al decidir cómo almacer datos, hace sentido anticiparse a la forma en la cual serán consultados. Existen varias formas de almacenar los datos:
    -
  • Relational database stores a collection of tables, and uses a special language called SQL to query them. Typically, tables would be connected to each other using some schema. In many cases we need to convert the data from original form to fit the schema.
  • -
  • NoSQL database, such as CosmosDB, does not enforce schema on data, and allows storing more complex data, for example, hierarchical JSON documents or graphs. However, NoSQL database does not have rich querying capabilities of SQL, and cannot enforce referential integrity between data.
  • -
  • Data Lake storage is used for large collections of data in raw form. Data lakes are often used with big data, where all data cannot fit into one machine, and has to be stored and processed by a cluster. Parquet is the data format that is often used in conjunction with big data.
  • +
  • Las bases de datos relacionales almacenan una colección de tabla, y usan un lenguaje especial llamado SQL para consultalos. Típicamente, las tablas estarían conectadas unas a otras mediante un esquema. En muchas ocasiones necesitamos convertir los datos desde la fuente original para que se ajusten al esquema.
  • +
  • Bases de datos NoSQL, como CosmosDB, no exigen un esquema de datos, y permiten almacenar datos más complejos, por ejemplo, documentos JSON jerárquicos o grafos. Sin embargo, Las bases de datos NoSQL no tienen capacidades de consulta SQL sofisticadas, y no requieren integridad referencial entre los datos.
  • +
  • El almacenamiento en lago de datos se usa para grandes colecciones de datos sin procesamiento. Los lagos de datos suelen ser usados con big data, donde todos los datos no pueden ser reunidos en un único equipo, y tienen que ser almacenados y procesados por un clúster. Parquet es un formato de datos que se utiliza comúnmente en conjunto con big data.
-
3) Data Processing
+
3) Procesamiento de datos
-This is the most exciting part of data journey, which involved processing the data from its original form to the form that can be used for visualization/model training. When dealing with unstructured data such as text or images, we may need to use some AI techniques to extract **features** from the data, thus converting it to structured form. +Esta es la parte más emocionante del viaje de los datos, el cual involucra el procesamiento de los datos desde su forma original hasta la forma en que puede ser usada por visualizaciones/modelo de entrenamiento. Cuando tratamos con datos no estructurados como texto o imágenes, debemos usar algunas técnias de IA para extraer las **características** de los datos, y así convertirlos a su forma estructurada.
-
4) Visualization / Human Insights
+
4) Visualización / entendimiento humano
-Often to understand the data we need to visualize them. Having many different visualization techniques in our toolbox we can find the right view to make an insight. Often, data scientist needs to "play with data", visualizing it many times and looking for some relationships. Also, we may use techniques from statistics to test some hypotheses or prove correlation between different pieces of data. +Usualmente para entender los datos necesitamos visualizarlos. Teniendo diversas ténicas de visualización en nuestro arsenal podemos encontrar la visualización adecuada para comprenderla. Comúnmente, un científico de datos necesita "jugar con los datos", visualizádolos varias veces y buscando alguna relación. Además, debemos usar técnicas de estadística para probar algunas hipótesis o probar la correlación entre distintas porciones de datos.
-
5) Training predictive model
+
5) Entrenando modelos predictivos
-Because the ultimate goal of data science is to be able to take decisions based on data, we may want to use the techniques of Machine Learning to build predictive model that will be able to solve our problem. +Ya que el principal objetivo de la ciencia de datos es ser capaz de tomar decisiones basándonos en los datos, debemos usar técnicas de aprendizaje automático para construir modelos predictivos que serán capces de resolver nuestros problemas.
-Of course, depending on the actual data some steps might be missing (eg., when we already have the data in the database, or when we do not need model training), or some steps might be repeated several times (such as data processing). +Por supuesto, dependiendo de los datos reales algunos pasos serán omitidos (por ejemplo, cuando ya tenemos los datos en la base de datos, o cuando no necesitamos modelo de entrenamiento), o algunos pasos deben ser repetidos varias veces (como el procesamiento de datos). -## Digitalization and Digital Transformation +## Digitalización y transformación digital -In the last decade, many businesses started to understand the importance of data when making business decisions. To apply data science principles to running a business one first needs to collect some data, i.e. somehow turn business processes into digital form. This is known as **digitalization**, and followed by using data science techniques to guide decisions it often leads to significant increase of productivity (or even business pivot), called **digital transformation**. +En la última década, muchos negocios comenzaron a entender la importancia de los datos al tomar decisiones de negocio. Para aplicar los principios de ciencia de datos para dirigir un negocio primero necesitas reunir algunos datos, por ejemplo, de alguna forma digitalizar los procesos de negocio. Esto es conocido como **digitalización**, y seguido usar técnicas de ciencia de datos para guiar decisiones esto usualmente conlleva a un incremento significativo de la productividad (o incluso negocios pivote), llamado **transformación digital**. -Let's consider an example. Suppose, we have a data science course (like this one), which we deliver online to students, and we want to use data science to improve it. How can we do it? +Consideremos el siguiente ejemplo. Supongaos, tenemos un curso de ciencia de datos (como éste), el cual ofrecemos en línea a los estudiante, y queremos usar ciencia de datos para mejorarl. ¿Cómo podemos hacerlo? -We can start with thinking "what can be digitized?". The simplest way would be to measure time it takes each student to complete each module, and the obtained knowledge (eg. by giving multiple-choice test at the end of each module). By averaging time-to-complete across all students, we can find out which modules cause the most problems to students, and work on simplifying them. +Podemos comenzar pensando "¿qué puede ser digitalizado?". La forma más simple sería medir el tiempo que le toma a cada estuddiante completar cada módulo, y el conocimiento obtenido (por ejemplo, realizando exámenes de opción múltiple al final de cada módulo). Promediando el tiempo en concluir de todos los estudiantes, y trabajar en simplificarlos. -> You may argue that this approach is not ideal, because modules can be of different length. It is probably more fair to divide the time by the length of the module (in number of characters), and compare those values instead. +> Argumentarás que este enfoque no es idóneo, porque los módulos pueden tener distinta duración. Problablemente es más justo dividir el tiempo por la longitud del módulo (en número de caracteres), y comparar esos valores en su lugar. -When we start analyzing results of multiple-choice tests, we can try to find out specific concepts that students understand poorly, and improve the content. To do that, we need to design tests in such a way that each question maps to a certain concept or chunk of knowledge. +Cuando comenzamos analizando los resultados de los exámenes de opción múltiple, intentamos encontrar conceptos específicos que los estudiantes entendieron vagamente,y mejorar el contenido. Para hacerlo, necesitamos diseñar exámenes de tal forma que cada pregunta se relacione a un concepto concreto o porción de conocimiento. -If we want to get even more complicated, we can plot the time taken for each module against the age category of students. We might find out that for some age categories it takes inappropriately long time to complete the module, or students drop out at certain point. This can help us provide age recommendation for the module, and minimize people's dissatisfaction from wrong expectations. +Si queremos hacerlo aún más complejo, podemos trazar el tiempo invertido en cada módulo contra la categoría de edad de los estudiantes. Encontraremos que para algunas categorías de edad les toma ciertamente más tiempo el completar el módulo, o algunos estudiantes abandonan el curso en cierto punto. Esot nos puede ayudar a sugerir recomendaciones de módulos por edad, y así minimizar el descontengo de la gente por falsas expectativas. -## 🚀 Challenge +## 🚀 Desafío -In this challenge, we will try to find concepts relevant to the field of Data Science by looking at texts. We will take Wikipedia article on Data Science, download and process the text, and then build a word cloud like this one: +En este desafío, intentaremos encontrar los conceptos relevante para el campo de la Ciencia de Datos consultando algunos textos. Tomarermos un artículo de Wikipedia de Ciecnia de Datos, descargaremos y procesaremos el texto, y luego construiremos una nube de palabras como esta: -![Word Cloud for Data Science](images/ds_wordcloud.png) +![Nube de palabras para Ciencia de Datos](images/ds_wordcloud.png) -Visit [`notebook.ipynb`](notebook.ipynb) to read through the code. You can also run the code, and see how it performs all data transformations in real time. +Visita [`notebook.ipynb`](notebook.ipynb) para leer el código.También pueder ejecutarlo y ver como realiza todas las transformaciones de los datos en tiempo real. -> If you do not know how to run code in Jupyter Notebook, have a look at [this article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). +> Si no sabes como ejecutar el código en Jupyter Notebook, da un vistazo a [este artículo](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). -## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/1) +## [Cuestionario porterior a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/1) -## Assignments +## Ejercicios -* **Task 1**: Modify the code above to find out related concepts for the fields of **Big Data** and **Machine Learning** -* **Task 2**: [Think About Data Science Scenarios](assignment.md) +* **Tarea 1**: Modifica el código anterior para encontrar conceptos relacionados para los campos de **Big Data** y **Machine Learning** +* **Tarea 2**: [Piensa en los escenarios para la Ciencia de Datos](assignment.md) -## Credits +## Créditos -This lesson has been authored with ♥️ by [Dmitry Soshnikov](http://soshnikov.com) +Esta lección ha sido escrita con ♥️ por [Dmitry Soshnikov](http://soshnikov.com) From 1f95d73ca3d7c1a5f55b98893cd6edf7e029a575 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 4 Oct 2021 19:50:53 -0500 Subject: [PATCH 03/30] feat: Module 1 section 2 - Add file to be translated --- .../02-ethics/translations/README.es.md | 263 ++++++++++++++++++ 1 file changed, 263 insertions(+) diff --git a/1-Introduction/02-ethics/translations/README.es.md b/1-Introduction/02-ethics/translations/README.es.md index e69de29b..d7442aaa 100644 --- a/1-Introduction/02-ethics/translations/README.es.md +++ b/1-Introduction/02-ethics/translations/README.es.md @@ -0,0 +1,263 @@ +# Introduction to Data Ethics + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/02-Ethics.png)| +|:---:| +| Data Science Ethics - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +--- + +We are all data citizens living in a datafied world. + +Market trends tell us that by 2022, 1-in-3 large organizations will buy and sell their data through online [Marketplaces and Exchanges](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/). As **App Developers**, we'll find it easier and cheaper to integrate data-driven insights and algorithm-driven automation into daily user experiences. But as AI becomes pervasive, we'll also need to understand the potential harms caused by the [weaponization](https://www.youtube.com/watch?v=TQHs8SA1qpk) of such algorithms at scale. + +Trends also indicate that we will create and consume over [180 zettabytes](https://www.statista.com/statistics/871513/worldwide-data-created/) of data by 2025. As **Data Scientists**, this gives us unprecedented levels of access to personal data. This means we can build behavioral profiles of users and influence decision-making in ways that create an [illusion of free choice](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) while potentially nudging users towards outcomes we prefer. It also raises broader questions on data privacy and user protections. + +Data ethics are now _necessary guardrails_ for data science and engineering, helping us minimize potential harms and unintended consequences from our data-driven actions. The [Gartner Hype Cycle for AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) identifies relevant trends in digital ethics, responsible AI ,and AI governances as key drivers for larger megatrends around _democratization_ and _industrialization_ of AI. + +![Gartner's Hype Cycle for AI - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +In this lesson, we'll explore the fascinating area of data ethics - from core concepts and challenges, to case studies and applied AI concepts like governance - that help establish an ethics culture in teams and organizations that work with data and AI. + + + + +## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/2) 🎯 + +## Basic Definitions + +Let's start by understanding the basic terminology. + +The word "ethics" comes from the [Greek word "ethikos"](https://en.wikipedia.org/wiki/Ethics) (and its root "ethos") meaning _character or moral nature_. + +**Ethics** is about the shared values and moral principles that govern our behavior in society. Ethics is based not on laws but on +widely accepted norms of what is "right vs. wrong". However, ethical considerations can influence corporate governance initiatives and government regulations that create more incentives for compliance. + +**Data Ethics** is a [new branch of ethics](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) that "studies and evaluates moral problems related to _data, algorithms and corresponding practices_". Here, **"data"** focuses on actions related to generation, recording, curation, processing dissemination, sharing ,and usage, **"algorithms"** focuses on AI, agents, machine learning ,and robots, and **"practices"** focuses on topics like responsible innovation, programming, hacking and ethics codes. + +**Applied Ethics** is the [practical application of moral considerations](https://en.wikipedia.org/wiki/Applied_ethics). It's the process of actively investigating ethical issues in the context of _real-world actions, products and processes_, and taking corrective measures to make that these remain aligned with our defined ethical values. + +**Ethics Culture** is about [_operationalizing_ applied ethics](https://hbr.org/2019/05/how-to-design-an-ethical-organization) to make sure that our ethical principles and practices are adopted in a consistent and scalable manner across the entire organization. Successful ethics cultures define organization-wide ethical principles, provide meaningful incentives for compliance, and reinforce ethics norms by encouraging and amplifying desired behaviors at every level of the organization. + + +## Ethics Concepts + +In this section, we'll discuss concepts like **shared values** (principles) and **ethical challenges** (problems) for data ethics - and explore **case studies** that help you understand these concepts in real-world contexts. + +### 1. Ethics Principles + +Every data ethics strategy begins by defining _ethical principles_ - the "shared values" that describe acceptable behaviors, and guide compliant actions, in our data & AI projects. You can define these at an individual or team level. However, most large organizations outline these in an _ethical AI_ mission statement or framework that is defined at corporate levels and enforced consistently across all teams. + +**Example:** Microsoft's [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai) mission statement reads: _"We are committed to the advancement of AI-driven by ethical principles that put people first"_ - identifying 6 ethical principles in the framework below: + +![Responsible AI at Microsoft](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +Let's briefly explore these principles. _Transparency_ and _accountability_ are foundational values that other principles built upon - so let's begin there: + +* [**Accountability**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) makes practitioners _responsible_ for their data & AI operations, and compliance with these ethical principles. +* [**Transparency**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) ensures that data and AI actions are _understandable_ (interpretable) to users, explaining the what and why behind decisions. +* [**Fairness**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - focuses on ensuring AI treats _all people_ fairly, addressing any systemic or implicit socio-technical biases in data and systems. +* [**Reliability & Safety**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - ensures that AI behaves _consistently_ with defined values, minimizing potential harms or unintended consequences. +* [**Privacy & Security**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - is about understanding data lineage, and providing _data privacy and related protections_ to users. +* [**Inclusiveness**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - is about designing AI solutions with intention, adapting them to meet a _broad range of human needs_ & capabilities. + +> 🚨 Think about what your data ethics mission statement could be. Explore ethical AI frameworks from other organizations - here are examples from [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles) ,and [Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). What shared values do they have in common? How do these principles relate to the AI product or industry they operate in? + +### 2. Ethics Challenges + +Once we have ethical principles defined, the next step is to evaluate our data and AI actions to see if they align with those shared values. Think about your actions in two categories: _data collection_ and _algorithm design_. + +With data collection, actions will likely involve **personal data** or personally identifiable information (PII) for identifiable living individuals. This includes [diverse items of non-personal data](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) that _collectively_ identify an individual. Ethical challenges can relate to _data privacy_, _data ownership_, and related topics like _informed consent_ and _intellectual property rights_ for users. + +With algorithm design, actions will involve collecting & curating **datasets**, then using them to train & deploy **data models** that predict outcomes or automate decisions in real-world contexts. Ethical challenges can arise from _dataset bias_, _data quality_ issues, _unfairness_ ,and _misrepresentation_ in algorithms - including some issues that are systemic in nature. + +In both cases, ethics challenges highlight areas where our actions may encounter conflict with our shared values. To detect, mitigate, minimize, or eliminate, these concerns - we need to ask moral "yes/no" questions related to our actions, then take corrective actions as needed. Let's take a look at some ethical challenges and the moral questions they raise: + + +#### 2.1 Data Ownership + +Data collection often involves personal data that can identify the data subjects. [Data ownership](https://permission.io/blog/data-ownership) is about _control_ and [_user rights_](https://permission.io/blog/data-ownership) related to the creation, processing ,and dissemination of data. + +The moral questions we need to ask are: + * Who owns the data? (user or organization) + * What rights do data subjects have? (ex: access, erasure, portability) + * What rights do organizations have? (ex: rectify malicious user reviews) + +#### 2.2 Informed Consent + +[Informed consent](https://legaldictionary.net/informed-consent/) defines the act of users agreeing to an action (like data collection) with a _full understanding_ of relevant facts including the purpose, potential risks ,and alternatives. + +Questions to explore here are: + * Did the user (data subject) give permission for data capture and usage? + * Did the user understand the purpose for which that data was captured? + * Did the user understand the potential risks from their participation? + +#### 2.3 Intellectual Property + +[Intellectual property](https://en.wikipedia.org/wiki/Intellectual_property) refers to intangible creations resulting from the human initiative, that may _have economic value_ to individuals or businesses. + +Questions to explore here are: + * Did the collected data have economic value to a user or business? + * Does the **user** have intellectual property here? + * Does the **organization** have intellectual property here? + * If these rights exist, how are we protecting them? + +#### 2.4 Data Privacy + +[Data privacy](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) or information privacy refers to the preservation of user privacy and protection of user identity with respect to personally identifiable information. + +Questions to explore here are: + * Is users' (personal) data secured against hacks and leaks? + * Is users' data accessible only to authorized users and contexts? + * Is users' anonymity preserved when data is shared or disseminated? + * Can a user be de-identified from anonymized datasets? + + +#### 2.5 Right To Be Forgotten + +The [Right To Be Forgotten](https://en.wikipedia.org/wiki/Right_to_be_forgotten) or [Right to Erasure](https://www.gdpreu.org/right-to-be-forgotten/) provides additional personal data protection to users. Specifically, it gives users the right to request deletion or removal of personal data from Internet searches and other locations, _under specific circumstances_ - allowing them a fresh start online without past actions being held against them. + +Questions to explore here are: + * Does the system allow data subjects to request erasure? + * Should the withdrawal of user consent trigger automated erasure? + * Was data collected without consent or by unlawful means? + * Are we compliant with government regulations for data privacy? + + +#### 2.6 Dataset Bias + +Dataset or [Collection Bias](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) is about selecting a _non-representative_ subset of data for algorithm development, creating potential unfairness in result outcomes for diverse groups. Types of bias include selection or sampling bias, volunteer bias, and instrument bias. + +Questions to explore here are: + * Did we recruit a representative set of data subjects? + * Did we test our collected or curated dataset for various biases? + * Can we mitigate or remove any discovered biases? + +#### 2.7 Data Quality + +[Data Quality](https://lakefs.io/data-quality-testing/) looks at the validity of the curated dataset used to develop our algorithms, checking to see if features and records meet requirements for the level of accuracy and consistency needed for our AI purpose. + +Questions to explore here are: + * Did we capture valid _features_ for our use case? + * Was data captured _consistently_ across diverse data sources? + * Is the dataset _complete_ for diverse conditions or scenarios? + * Is information captured _accurately_ in reflecting reality? + +#### 2.8 Algorithm Fairness + +[Algorithm Fairness](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) checks to see if the algorithm design systematically discriminates against specific subgroups of data subjects leading to [potential harms](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) in _allocation_ (where resources are denied or withheld from that group) and _quality of service_ (where AI is not as accurate for some subgroups as it is for others). + +Questions to explore here are: + * Did we evaluate model accuracy for diverse subgroups and conditions? + * Did we scrutinize the system for potential harms (e.g., stereotyping)? + * Can we revise data or retrain models to mitigate identified harms? + +Explore resources like [AI Fairness checklists](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) to learn more. + +#### 2.9 Misrepresentation + +[Data Misrepresentation](https://www.sciencedirect.com/topics/computer-science/misrepresentation) is about asking whether we are communicating insights from honestly reported data in a deceptive manner to support a desired narrative. + +Questions to explore here are: + * Are we reporting incomplete or inaccurate data? + * Are we visualizing data in a manner that drives misleading conclusions? + * Are we using selective statistical techniques to manipulate outcomes? + * Are there alternative explanations that may offer a different conclusion? + +#### 2.10 Free Choice +The [Illusion of Free Choice](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) occurs when system "choice architectures" use decision-making algorithms to nudge people towards taking a preferred outcome while seeming to give them options and control. These [dark patterns](https://www.darkpatterns.org/) can cause social and economic harm to users. Because user decisions impact behavior profiles, these actions potentially drive future choices that can amplify or extend the impact of these harms. + +Questions to explore here are: + * Did the user understand the implications of making that choice? + * Was the user aware of (alternative) choices and the pros & cons of each? + * Can the user reverse an automated or influenced choice later? + +### 3. Case Studies + +To put these ethical challenges in real-world contexts, it helps to look at case studies that highlight the potential harms and consequences to individuals and society, when such ethics violations are overlooked. + +Here are a few examples: + +| Ethics Challenge | Case Study | +|--- |--- | +| **Informed Consent** | 1972 - [Tuskegee Syphillis Study](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - African American men who participated in the study were promised free medical care _but deceived_ by researchers who failed to inform subjects of their diagnosis or about availability of treatment. Many subjects died & partners or children were affected; the study lasted 40 years. | +| **Data Privacy** | 2007 - The [Netflix data prize](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) provided researchers with _10M anonymized movie rankings from 50K customers_ to help improve recommendation algorithms. However, researchers were able to correlate anonymized data with personally-identifiable data in _external datasets_ (e.g., IMDb comments) - effectively "de-anonymizing" some Netflix subscribers.| +| **Collection Bias** | 2013 - The City of Boston [developed Street Bump](https://www.boston.gov/transportation/street-bump), an app that let citizens report potholes, giving the city better roadway data to find and fix issues. However, [people in lower income groups had less access to cars and phones](https://hbr.org/2013/04/the-hidden-biases-in-big-data), making their roadway issues invisible in this app. Developers worked with academics to _equitable access and digital divides_ issues for fairness. | +| **Algorithmic Fairness** | 2018 - The MIT [Gender Shades Study](http://gendershades.org/overview.html) evaluated the accuracy of gender classification AI products, exposing gaps in accuracy for women and persons of color. A [2019 Apple Card](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) seemed to offer less credit to women than men. Both illustrated issues in algorithmic bias leading to socio-economic harms.| +| **Data Misrepresentation** | 2020 - The [Georgia Department of Public Health released COVID-19 charts](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) that appeared to mislead citizens about trends in confirmed cases with non-chronological ordering on the x-axis. This illustrates misrepresentation through visualization tricks. | +| **Illusion of free choice** | 2020 - Learning app [ABCmouse paid $10M to settle an FTC complaint](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) where parents were trapped into paying for subscriptions they couldn't cancel. This illustrates dark patterns in choice architectures, where users were nudged towards potentially harmful choices. | +| **Data Privacy & User Rights** | 2021 - Facebook [Data Breach](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) exposed data from 530M users, resulting in a $5B settlement to the FTC. It however refused to notify users of the breach violating user rights around data transparency and access. | + +Want to explore more case studies? Check out these resources: +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - ethics dilemmas across diverse industries. +* [Data Science Ethics course](https://www.coursera.org/learn/data-science-ethics#syllabus) - landmark case studies explored. +* [Where things have gone wrong](https://deon.drivendata.org/examples/) - deon checklist with examples + +> 🚨 Think about the case studies you've seen - have you experienced, or been affected by, a similar ethical challenge in your life? Can you think of at least one other case study that illustrates one of the ethical challenges we've discussed in this section? + +## Applied Ethics + +We've talked about ethics concepts, challenges ,and case studies in real-world contexts. But how do we get started _applying_ ethical principles and practices in our projects? And how do we _operationalize_ these practices for better governance? Let's explore some real-world solutions: + +### 1. Professional Codes + +Professional Codes offer one option for organizations to "incentivize" members to support their ethical principles and mission statement. Codes are _moral guidelines_ for professional behavior, helping employees or members make decisions that align with their organization's principles. They are only as good as the voluntary compliance from members; however, many organizations offer additional rewards and penalties to motivate compliance from members. + +Examples include: + + * [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) Code of Ethics + * [Data Science Association](http://datascienceassn.org/code-of-conduct.html) Code of Conduct (created 2013) + * [ACM Code of Ethics and Professional Conduct](https://www.acm.org/code-of-ethics) (since 1993) + +> 🚨 Do you belong to a professional engineering or data science organization? Explore their site to see if they define a professional code of ethics. What does this say about their ethical principles? How are they "incentivizing" members to follow the code? + +### 2. Ethics Checklists + +While professional codes define required _ethical behavior_ from practitioners, they [have known limitations](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) in enforcement, particularly in large-scale projects. Instead, many data Science experts [advocate for checklists](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), that can **connect principles to practices** in more deterministic and actionable ways. + +Checklists convert questions into "yes/no" tasks that can be operationalized, allowing them to be tracked as part of standard product release workflows. + +Examples include: + * [Deon](https://deon.drivendata.org/) - a general-purpose data ethics checklist created from [industry recommendations](https://deon.drivendata.org/#checklist-citations) with a command-line tool for easy integration. + * [Privacy Audit Checklist](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - provides general guidance for information handling practices from legal and social exposure perspectives. + * [AI Fairness Checklist](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - created by AI practitioners to support the adoption and integration of fairness checks into AI development cycles. + * [22 questions for ethics in data and AI](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - more open-ended framework, structured for initial exploration of ethical issues in design, implementation, and organizational, contexts. + +### 3. Ethics Regulations + +Ethics is about defining shared values and doing the right thing _voluntarily_. **Compliance** is about _following the law_ if and where defined. **Governance** broadly covers all the ways in which organizations operate to enforce ethical principles and comply with established laws. + +Today, governance takes two forms within organizations. First, it's about defining **ethical AI** principles and establishing practices to operationalize adoption across all AI-related projects in the organization. Second, it's about complying with all government-mandated **data protection regulations** for regions it operates in. + +Examples of data protection and privacy regulations: + + * `1974`, [US Privacy Act](https://www.justice.gov/opcl/privacy-act-1974) - regulates _federal govt._ collection, use ,and disclosure of personal information. + * `1996`, [US Health Insurance Portability & Accountability Act (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - protects personal health data. + * `1998`, [US Children's Online Privacy Protection Act (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - protects data privacy of children under 13. + * `2018`, [General Data Protection Regulation (GDPR)](https://gdpr-info.eu/) - provides user rights, data protection ,and privacy. + * `2018`, [California Consumer Privacy Act (CCPA)](https://www.oag.ca.gov/privacy/ccpa) gives consumers more _rights_ over their (personal) data. + * `2021`, China's [Personal Information Protection Law](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) just passed, creating one of the strongest online data privacy regulations worldwide. + +> 🚨 The European Union defined GDPR (General Data Protection Regulation) remains one of the most influential data privacy regulations today. Did you know it also defines [8 user rights](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) to protect citizens' digital privacy and personal data? Learn about what these are, and why they matter. + + +### 4. Ethics Culture + +Note that there remains an intangible gap between _compliance_ (doing enough to meet "the letter of the law") and addressing [systemic issues](https://www.coursera.org/learn/data-science-ethics/home/week/4) (like ossification, information asymmetry ,and distributional unfairness) that can speed up the weaponization of AI. + +The latter requires [collaborative approaches to defining ethics cultures](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) that build emotional connections and consistent shared values _across organizations_ in the industry. This calls for more [formalized data ethics cultures](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) in organizations - allowing _anyone_ to [pull the Andon cord](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (to raise ethics concerns early in the process) and making _ethical assessments_ (e.g., in hiring) a core criteria team formation in AI projects. + +--- +## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/3) 🎯 +## Review & Self Study + +Courses and books help with understanding core ethics concepts and challenges, while case studies and tools help with applied ethics practices in real-world contexts. Here are a few resources to start with. + +* [Machine Learning For Beginners](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - lesson on Fairness, from Microsoft. +* [Principles of Responsible AI](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - free learning path from Microsoft Learn. +* [Ethics and Data Science](https://resources.oreilly.com/examples/0636920203964) - O'Reilly EBook (M. Loukides, H. Mason et. al) +* [Data Science Ethics](https://www.coursera.org/learn/data-science-ethics#syllabus) - online course from the University of Michigan. +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - case studies from the University of Texas. + +# Assignment + +[Write A Data Ethics Case Study](assignment.md) From a73176e12b0eeec70b85838abaa40581fd02c142 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Wed, 6 Oct 2021 15:18:00 -0500 Subject: [PATCH 04/30] feat: Translation for module 1 - section 2 --- .../02-ethics/translations/README.es.md | 320 +++++++++--------- 1 file changed, 160 insertions(+), 160 deletions(-) diff --git a/1-Introduction/02-ethics/translations/README.es.md b/1-Introduction/02-ethics/translations/README.es.md index d7442aaa..8d883b1b 100644 --- a/1-Introduction/02-ethics/translations/README.es.md +++ b/1-Introduction/02-ethics/translations/README.es.md @@ -1,263 +1,263 @@ -# Introduction to Data Ethics +# Introducción a la ética de datos -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/02-Ethics.png)| +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/02-Ethics.png)| |:---:| -| Data Science Ethics - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| Ética para ciencia de datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | --- -We are all data citizens living in a datafied world. +Todos somos ciudadanos de datos viviendo en un gobernado por datos. -Market trends tell us that by 2022, 1-in-3 large organizations will buy and sell their data through online [Marketplaces and Exchanges](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/). As **App Developers**, we'll find it easier and cheaper to integrate data-driven insights and algorithm-driven automation into daily user experiences. But as AI becomes pervasive, we'll also need to understand the potential harms caused by the [weaponization](https://www.youtube.com/watch?v=TQHs8SA1qpk) of such algorithms at scale. +Las tendencias de mercado nos dicen que para 2022, 1 de cada 3 grandes organizaciones comprará y venderá sus datos en línea a través de [mercados e intercambios](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/). Como **desarrolladores de Apps**, lo encontraremos más fácil y barato que integrar conocimientos dirigidos por datos y automatización dirigida por algoritmos en las experiencias de usuario del día a día. Pero como la AI se vuelve cada vez más presente, necesitarempos entender lso daños potenciales causados por el [armamentismo](https://www.youtube.com/watch?v=TQHs8SA1qpk) de dichos algoritmos a escala. -Trends also indicate that we will create and consume over [180 zettabytes](https://www.statista.com/statistics/871513/worldwide-data-created/) of data by 2025. As **Data Scientists**, this gives us unprecedented levels of access to personal data. This means we can build behavioral profiles of users and influence decision-making in ways that create an [illusion of free choice](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) while potentially nudging users towards outcomes we prefer. It also raises broader questions on data privacy and user protections. +Las tendencias también indican que crearemos y consumiremos más de [180 zettabytes](https://www.statista.com/statistics/871513/worldwide-data-created/) de datos para el 2025. Como **científicos de datos**, esto nos da niveles de acceso sin precedentes a datos personales. Esto significa que podemos construir perfiles conductuales de usuarios e influenciar en la toma de decisiones en formas que crea una [ilusión de libre elección](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) mientras empuja a los usuarios hacia los resultados que preferimos. También plantea preguntas más amplias respecto a la privacidad de datos y protección de los usuarios. -Data ethics are now _necessary guardrails_ for data science and engineering, helping us minimize potential harms and unintended consequences from our data-driven actions. The [Gartner Hype Cycle for AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) identifies relevant trends in digital ethics, responsible AI ,and AI governances as key drivers for larger megatrends around _democratization_ and _industrialization_ of AI. +La ética de datos son _barreras de seguridad necesarias_ para la ciencia de datos e ingeniería, ayudándonos a minimizar daños potenciales y consecuencias no deseadas de nuestras acciones dirigidas por datos. El [Hype Cycle de Gartner para AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) identifica tendencias relevantes en ética digital, AI responsable, y gobernanza de AI como factores clave para mega-tendencias mayores alrededor de la _democratización_ e _industrialización_ de la AI. -![Gartner's Hype Cycle for AI - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) +![Hype Cycle de Gartner para AI - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) -In this lesson, we'll explore the fascinating area of data ethics - from core concepts and challenges, to case studies and applied AI concepts like governance - that help establish an ethics culture in teams and organizations that work with data and AI. +En esta lección, exploraremos la fascinante área de la ética de datos - desde los conceptos clave y desafíos, hasta los casos de estudio y conceptos de AI aplicados como gobernanza - que ayuda a establecer una cultura de ética en equipos y organizaciones que trabajan con datos y AI. -## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/2) 🎯 +## [Examen previo a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/2) 🎯 -## Basic Definitions +## Definiciones básicas -Let's start by understanding the basic terminology. +Empecemos entendiendo la terminología básica. -The word "ethics" comes from the [Greek word "ethikos"](https://en.wikipedia.org/wiki/Ethics) (and its root "ethos") meaning _character or moral nature_. +La palabra "ética" proviene de la [palabra griega "ethikos"](https://en.wikipedia.org/wiki/Ethics) (y su raíz "ethos") lo cual significa _carácter o naturaleza moral_. -**Ethics** is about the shared values and moral principles that govern our behavior in society. Ethics is based not on laws but on -widely accepted norms of what is "right vs. wrong". However, ethical considerations can influence corporate governance initiatives and government regulations that create more incentives for compliance. +La **ética** se trata de valores compartidos y principios morales que gobiernan nuestro comportamiento en sociedad. La ética se basa no en leyes sino en normas más ampliamente aceptadas de lo que es "correcto vs lo incorrecto". Sin embargo, las consideraciones éticas pueden influenciar iniciativas de gobernanza corporativa y regulaciones de gobernanza que crean más incentivos para el cumplimiento. -**Data Ethics** is a [new branch of ethics](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) that "studies and evaluates moral problems related to _data, algorithms and corresponding practices_". Here, **"data"** focuses on actions related to generation, recording, curation, processing dissemination, sharing ,and usage, **"algorithms"** focuses on AI, agents, machine learning ,and robots, and **"practices"** focuses on topics like responsible innovation, programming, hacking and ethics codes. +La **ética de datos** es una [nueva rama de la ética](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) que "estudia y evalua problemas morales relacionados a _datos, algoritmos y prácticas correspondientes_"- Aquí, los **"datos"** se centran en acciones relacionadas a la generación, grabación, curación, procesamiento de difusión, intercambio y uso de **"algoritmos"** centrados en AI, agentes, aprendizaje automático, y robots, así como **"prácticas"** enfocadas en temas como inovación responsable, programación, hackeo y códigos de ética. -**Applied Ethics** is the [practical application of moral considerations](https://en.wikipedia.org/wiki/Applied_ethics). It's the process of actively investigating ethical issues in the context of _real-world actions, products and processes_, and taking corrective measures to make that these remain aligned with our defined ethical values. +**Ética aplicada** es la [aplicación práctica de consideraciones morales](https://en.wikipedia.org/wiki/Applied_ethics). Es el proceso de investigar activamente cuestiones éticas en el contexto de _acciones del mundo real, productos y procesos_, y tomar medidas correctivas para hacer que estos se alinean con nuestros valores éticos definidos. -**Ethics Culture** is about [_operationalizing_ applied ethics](https://hbr.org/2019/05/how-to-design-an-ethical-organization) to make sure that our ethical principles and practices are adopted in a consistent and scalable manner across the entire organization. Successful ethics cultures define organization-wide ethical principles, provide meaningful incentives for compliance, and reinforce ethics norms by encouraging and amplifying desired behaviors at every level of the organization. +**Cultura ética** trata de [_operacionalizar_ la ética aplicada](https://hbr.org/2019/05/how-to-design-an-ethical-organization) para confirmar que nuestros principios éticos y prácticas son adoptados de forma consistente y escalable a través de toda la organización. Una cultura ética exitosa define principios éticos a nivel organización, provee incentivos significativos para el cumplimiento y refuerza las normas éticas alentando y amplificando los comportamientos deseados en cada nivel de la organización. -## Ethics Concepts +## Conceptos éticos -In this section, we'll discuss concepts like **shared values** (principles) and **ethical challenges** (problems) for data ethics - and explore **case studies** that help you understand these concepts in real-world contexts. +En esta sección, duscutiremos conceptos como **valores compartidos** (principios) y **retos éticos** (problemas) para la ética de datos - y explora **casos de estudio** que te ayudan a entender estos conceptos en el contexto del mundo real. -### 1. Ethics Principles +### 1. Principios éticos -Every data ethics strategy begins by defining _ethical principles_ - the "shared values" that describe acceptable behaviors, and guide compliant actions, in our data & AI projects. You can define these at an individual or team level. However, most large organizations outline these in an _ethical AI_ mission statement or framework that is defined at corporate levels and enforced consistently across all teams. +Cada estrategia de ética de datos comienza por la definición de _principios éticos_ - los "valores compartidos" que describen los comportamientos aceptables, y guían acciones de conformidad, en nuestros proyectos de datos y AI. Puedes definir estos a nivel individual o de equipo. Sin embargo, la mayoría de las grandes organizaciones describen estos en una misión _ética de AI_ o marco de trabajo que es definido a niveles corporativos y refuerza consistentement a través de todos los equipos. -**Example:** Microsoft's [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai) mission statement reads: _"We are committed to the advancement of AI-driven by ethical principles that put people first"_ - identifying 6 ethical principles in the framework below: +**Ejemplo:** La misión [responsable de AI](https://www.microsoft.com/en-us/ai/responsible-ai) de Microsoft se lee: _"Estamos comprometidos al avance de principios éticos dirigidos por AI que anteponen primero a la gente"_ - identificando 6 principios éticos en el marco de trabajo descrito a continuación: -![Responsible AI at Microsoft](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) +![AI responsable en Microsoft](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) -Let's briefly explore these principles. _Transparency_ and _accountability_ are foundational values that other principles built upon - so let's begin there: +Exploremos brevemente estos principios. La _transparencia_ y _responsabilidad_ son los valores fundamentales sobre los que se cimientan otros principios - iniciemos aquí: -* [**Accountability**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) makes practitioners _responsible_ for their data & AI operations, and compliance with these ethical principles. -* [**Transparency**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) ensures that data and AI actions are _understandable_ (interpretable) to users, explaining the what and why behind decisions. -* [**Fairness**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - focuses on ensuring AI treats _all people_ fairly, addressing any systemic or implicit socio-technical biases in data and systems. -* [**Reliability & Safety**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - ensures that AI behaves _consistently_ with defined values, minimizing potential harms or unintended consequences. -* [**Privacy & Security**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - is about understanding data lineage, and providing _data privacy and related protections_ to users. -* [**Inclusiveness**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - is about designing AI solutions with intention, adapting them to meet a _broad range of human needs_ & capabilities. +* [**Responsabilidad**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) hace a los practicantes _responsables_ por sus datos y operaciones de AI, en cumplimiento con estos principios éticos. +* [**Transparencia**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) asegura que los datos y acciones de AI sean _entendibles_ (interpretables) para los usuarios, explicando el qué y el porqué detrás de las decisiones. +* [**Justicia**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - se centra en asegurar que la AI trata a _todas las personas_ justamente, dirigiendo cualquier sesgo sistémico o social-ético implícito in datos y sistemas. +* [**Fiabilidad y seguridad**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - asegura que la AI se comporta _consistentemente_ con los valores definidos, minimizando daños potenciales o consecuencias no intencionadas. +* [**Privacidad & seguridad**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - se trata del entendimiento del linaje de datos, y provee _privacidad de datos y protecciones relacionadas_ a los usuarios. -> 🚨 Think about what your data ethics mission statement could be. Explore ethical AI frameworks from other organizations - here are examples from [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles) ,and [Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). What shared values do they have in common? How do these principles relate to the AI product or industry they operate in? +* [**Inclusión**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - trata del diseño de soluciones AI con la intención, adaptándolas para reunir un _amplio rango de necesidades humanas_ y capacidades. -### 2. Ethics Challenges +> 🚨 Piensa cual podría ser tu misión de ética de datos. Explorar marcos de trabajo éticos de AI de otras organizaciones - aquí tienes ejemplos de [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles) , y[Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). ¿Qué valores compartidos tienen en común? ¿Cómo se relacionan estos principios al producto de AI o industria en la cual operan? -Once we have ethical principles defined, the next step is to evaluate our data and AI actions to see if they align with those shared values. Think about your actions in two categories: _data collection_ and _algorithm design_. +### 2. Desafíos éticos -With data collection, actions will likely involve **personal data** or personally identifiable information (PII) for identifiable living individuals. This includes [diverse items of non-personal data](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) that _collectively_ identify an individual. Ethical challenges can relate to _data privacy_, _data ownership_, and related topics like _informed consent_ and _intellectual property rights_ for users. +Una vez que tenemos pricipios éticos definidos, el siguiente paos es evaluar nuestros datos y acciones AI para ver si estos se alinean con los valores compartidos. Piensa en tus acciones en 2 categorías: _recolección de datos_ y _diseño de algoritmos_. -With algorithm design, actions will involve collecting & curating **datasets**, then using them to train & deploy **data models** that predict outcomes or automate decisions in real-world contexts. Ethical challenges can arise from _dataset bias_, _data quality_ issues, _unfairness_ ,and _misrepresentation_ in algorithms - including some issues that are systemic in nature. +Con la recolección de datos, las acciones probablemente involucren **datos personales** o información de identificación personal (PII) para individuos vivos identificables. Esto incluye [diversos artículos de datos no personales](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) que _colectivamente_ identifican a un individuo. Los desafíos éticos pueden relacionarse con _privacidad de datos_, _propiedad de los datos_, y temas relacionados como _consentimiento informado_ y _derechos de propiedad intelectual_ para los usuarios. -In both cases, ethics challenges highlight areas where our actions may encounter conflict with our shared values. To detect, mitigate, minimize, or eliminate, these concerns - we need to ask moral "yes/no" questions related to our actions, then take corrective actions as needed. Let's take a look at some ethical challenges and the moral questions they raise: +Con el diseño de algoritmo, las acciones involucran la recolección y curación de **conjuntos de datos**, luego usarlos para entrenar y desplegar **modelos de datos** que predicen resultados o automatizan decisiones en contexto del mundo real. Los desafíos éticos pueden surgir de _conjuntos de datos sesgados_, problemas con la _calidad de los datos_, _injusticia_, y _malinterpretación_ in los algoritmo - incluyendo algunos problemas que son sistémicos por naturaleza. +En ambos casos, los desafíos éticos destacan áreas donde nuestas acciones pueden encontrar conflictos con nuestros valores compartidos. Para detectar, mitigar, minimizar, o eliminar estas preocupaciones - necesitamos realizar preguntas morales de "sí/no" relacionadas a nuestas acciones, luego tomar acciones correctivas según sea necesario. Demos un vistazo a algunos desafíos éticos y las preguntas morales que plantean: -#### 2.1 Data Ownership -Data collection often involves personal data that can identify the data subjects. [Data ownership](https://permission.io/blog/data-ownership) is about _control_ and [_user rights_](https://permission.io/blog/data-ownership) related to the creation, processing ,and dissemination of data. +#### 2.1 Propiedad de los datos -The moral questions we need to ask are: - * Who owns the data? (user or organization) - * What rights do data subjects have? (ex: access, erasure, portability) - * What rights do organizations have? (ex: rectify malicious user reviews) +La recolección de datos suele involucrar datos que pueden identificar los sujetos de datos. La [propiedad de los datos](https://permission.io/blog/data-ownership) trata del _control_ y [_derechos de usuario_](https://permission.io/blog/data-ownership) relacionados a la creación, procesamiento y dispersión de los datos. -#### 2.2 Informed Consent +Las preguntas morales que debemos hacer son: + * ¿Quién posea los datos? (usuario u organización) + * ¿Qué derechos tienen los sujetos de datos? (ejemplo: acceso, eliminación, portabilidad) + * ¿Qué derechos tienen las organizaciones? (ejemplo: rectificar revisiones de usuarios maliciosos) -[Informed consent](https://legaldictionary.net/informed-consent/) defines the act of users agreeing to an action (like data collection) with a _full understanding_ of relevant facts including the purpose, potential risks ,and alternatives. +#### 2.2 Consentimiento informado -Questions to explore here are: - * Did the user (data subject) give permission for data capture and usage? - * Did the user understand the purpose for which that data was captured? - * Did the user understand the potential risks from their participation? +[Consentimiento informado](https://legaldictionary.net/informed-consent/) define el acto de los usuarios al aceptar una acción (como la recolección de datos) con un _completo entendimiento_ de hechos relevantes incluyendo el propósito, riesgos potenciales y alternativas. -#### 2.3 Intellectual Property +Las preguntas a explorar son: + * ¿El usuario (sujeto de datos) otorgó el permiso para el uso y cpatura de datos? + * ¿El usuario entendió el propósito para el cual los datos fueron capturados? + * ¿EL usuario entendió los riesgos potenciales de su participación? -[Intellectual property](https://en.wikipedia.org/wiki/Intellectual_property) refers to intangible creations resulting from the human initiative, that may _have economic value_ to individuals or businesses. +#### 2.3 Propiedad intelectual -Questions to explore here are: - * Did the collected data have economic value to a user or business? - * Does the **user** have intellectual property here? - * Does the **organization** have intellectual property here? - * If these rights exist, how are we protecting them? +La [propiedad intelectual](https://en.wikipedia.org/wiki/Intellectual_property) se refiere a creaciones intangibles resultado de la iniciativa humana, que puede _tener valor económico_ para individuos o negocios. -#### 2.4 Data Privacy +Las preguntas a explorar son: + * ¿Los datos recolectados tiene valor económico para un usuario o negocio? + * ¿El **usuario** tiene propiedad intelectual en este ámbito? + * ¿La **organización** tiene propiedad intelectual en este ámbito? + * Si estos derechos existen, ¿cómo los protegemos? -[Data privacy](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) or information privacy refers to the preservation of user privacy and protection of user identity with respect to personally identifiable information. +#### 2.4 Privacidad de datos -Questions to explore here are: - * Is users' (personal) data secured against hacks and leaks? - * Is users' data accessible only to authorized users and contexts? - * Is users' anonymity preserved when data is shared or disseminated? - * Can a user be de-identified from anonymized datasets? +La [privacidad de datos](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) o privacidad de la información se refiere a la preservación de la privacidad del usuario y la protección de la identidad del usuario respecto a información de identificación personal. +Las preguntas a explorar son: + * ¿Están los datos (personales) de los usuarios seguros contra hackeos y filtraciones? + * ¿Están los datos de usuario accesibles sólo para usuarios y contextos autorizados? + * ¿Se preserva el anonimato de los usuarios cuando los datos son compartidos o esparcidos? + * ¿Puede un usuario ser desidentificado de conuntos de datos anonimizados? -#### 2.5 Right To Be Forgotten -The [Right To Be Forgotten](https://en.wikipedia.org/wiki/Right_to_be_forgotten) or [Right to Erasure](https://www.gdpreu.org/right-to-be-forgotten/) provides additional personal data protection to users. Specifically, it gives users the right to request deletion or removal of personal data from Internet searches and other locations, _under specific circumstances_ - allowing them a fresh start online without past actions being held against them. +#### 2.5 Derecho al olvido -Questions to explore here are: - * Does the system allow data subjects to request erasure? - * Should the withdrawal of user consent trigger automated erasure? - * Was data collected without consent or by unlawful means? - * Are we compliant with government regulations for data privacy? +El [derecho al olvido](https://en.wikipedia.org/wiki/Right_to_be_forgotten) o [derecho a la eliminación](https://www.gdpreu.org/right-to-be-forgotten/) provee protección adicional a datos personales de los usuarios. Especialmente, brinda a los usuarios el derecho a solicitar la eliminación o remoción de datos personales de búsquedas de internet y otras ubicaciones, _bajo circunstancias específicas_ - permitiéndoles un nuevo comienzo en línea sin las acciones pasadas siendo retenidas contra él. +Las preguntas a explorar son: + * ¿El sistema permite a los sujetos de datos solicitar eliminación? + * ¿La remoción del consentimiento del usuario debería disparar la eliminación automatizada? + * ¿Se recolectaron los datos sin consentimiento o por medios no legítimos? + * ¿Estamos de acuerdo con las regulaciones de gobierno para la privacidad de los datos? -#### 2.6 Dataset Bias -Dataset or [Collection Bias](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) is about selecting a _non-representative_ subset of data for algorithm development, creating potential unfairness in result outcomes for diverse groups. Types of bias include selection or sampling bias, volunteer bias, and instrument bias. +#### 2.6 Sesgo del conjunto de datos -Questions to explore here are: - * Did we recruit a representative set of data subjects? - * Did we test our collected or curated dataset for various biases? - * Can we mitigate or remove any discovered biases? +Un conjunto de datos o [sesgo de recopilación](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) pretende seleccionar un subconjunto _no representativo_ de datos para el desarrollo de un algorítmo, creando una potencial injusticia en los resultados para distintos grupos. Los tipos de sesgos incluyen selección o muestreo de sesgo, sesgo voluntario y sesgo de instrumento. -#### 2.7 Data Quality +Las preguntas a explorar son: + * ¿Reclutamos un conjunto representativo de sujetos de datos? + * ¿Probamos nuestros conjuntos de datos recoletados o curados para distintos sesgos? + * ¿Podemos mitigar o eliminar los sesgos descubiertos? -[Data Quality](https://lakefs.io/data-quality-testing/) looks at the validity of the curated dataset used to develop our algorithms, checking to see if features and records meet requirements for the level of accuracy and consistency needed for our AI purpose. +#### 2.7 Calidad de los datos -Questions to explore here are: - * Did we capture valid _features_ for our use case? - * Was data captured _consistently_ across diverse data sources? - * Is the dataset _complete_ for diverse conditions or scenarios? - * Is information captured _accurately_ in reflecting reality? +[La calidad de los datos](https://lakefs.io/data-quality-testing/) se enfoca en la validez de los conjuntos de datos curados que se usan para desarrollar nuestros algoritmos, comprobando si las características y registros cumplen los requerimientos para el nivel de precisión necesario para nuestros propósitos de AI. -#### 2.8 Algorithm Fairness +Las preguntas a explorar son: + * ¿Capturamos _características_ válidas para nuestro caso de uso? + * ¿Los datos fueron capturados _consistentemente_ a través de las distintas fuentes de datos? + * ¿Están _completos_ los conjuntos de datos para las distintas condiciones o escenarios? + * ¿La información es capturada de forma _precisa_ reflejando la realidad? -[Algorithm Fairness](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) checks to see if the algorithm design systematically discriminates against specific subgroups of data subjects leading to [potential harms](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) in _allocation_ (where resources are denied or withheld from that group) and _quality of service_ (where AI is not as accurate for some subgroups as it is for others). +#### 2.8 Justicia del algoritmo -Questions to explore here are: - * Did we evaluate model accuracy for diverse subgroups and conditions? - * Did we scrutinize the system for potential harms (e.g., stereotyping)? - * Can we revise data or retrain models to mitigate identified harms? +[La justicia del algoritmo](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) verifica que el diseño del algoritmo discrimina sistemáticamente contra subgrupos específicos de sujetos de datos que conlleven a [daños potenciales](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) en _asignación_, (donde los recursos son negados o retenidos para ese grupo) y _calidad del servicio_ (donde la AI no es tan precisa para algunos subgrupos como lo es para otros). -Explore resources like [AI Fairness checklists](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) to learn more. +Las preguntas a explorar son: + * ¿Evaluamos la precisión del modelo para distintos subgrupos y condiciones? + * ¿Escrutinamos el sistema buscando daños potenciales (por ejemplo, estereotipos? + * ¿Podemos revisar los datos o retener re-entrenar modelos para mitigar daños potenciales? -#### 2.9 Misrepresentation +Explora recursos como [Listas de comprogación de justicia de AI](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) para aprender más. -[Data Misrepresentation](https://www.sciencedirect.com/topics/computer-science/misrepresentation) is about asking whether we are communicating insights from honestly reported data in a deceptive manner to support a desired narrative. +#### 2.9 Malinterpretación -Questions to explore here are: - * Are we reporting incomplete or inaccurate data? - * Are we visualizing data in a manner that drives misleading conclusions? - * Are we using selective statistical techniques to manipulate outcomes? - * Are there alternative explanations that may offer a different conclusion? +[La malinterpretación de datos](https://www.sciencedirect.com/topics/computer-science/misrepresentation) trata de preguntarse si estamos comunicando ideas honestamente de los datos reportados en una forma engañosa para soportar la narrativa deseada. -#### 2.10 Free Choice -The [Illusion of Free Choice](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) occurs when system "choice architectures" use decision-making algorithms to nudge people towards taking a preferred outcome while seeming to give them options and control. These [dark patterns](https://www.darkpatterns.org/) can cause social and economic harm to users. Because user decisions impact behavior profiles, these actions potentially drive future choices that can amplify or extend the impact of these harms. +Las preguntas a explorar son: + * ¿Estamos reportando datos incompletos o inexactos? + * ¿Estamos visualizando los datos de tal forma conllevan a conclusiones engañosas? + * ¿Estamos usando técnicas estadísticas selectivas para manipular los resultados? + * ¿Existen explicaciones alternativas par pueden ofrecer una conclusión distinta? -Questions to explore here are: - * Did the user understand the implications of making that choice? - * Was the user aware of (alternative) choices and the pros & cons of each? - * Can the user reverse an automated or influenced choice later? +#### 2.10 Libertad de elección +La [ilusión de libertad de elección](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) ocurre cuando un sistema "elige arquitecturas" usando algoritmos de toma de decisiones para empujar a la gente hacia la elección de un resultado preferido mientras aparenta darles opciones y control. Estos [patrones obscuros](https://www.darkpatterns.org/) pueden causar daño social y económico a los usuarios. Ya que las decisiones del usuario impactan en los perfiles de comportamiento, estas acciones dirigen potencialmente a futuras elecciones que pueden amplificar y extender el impacto de estos daños. -### 3. Case Studies +Las preguntas a explorar son: + * ¿El usuario entendió las implicaciones de realizar dicha elección? + * ¿El usuario estaba conciente de las opciones (alternativas) y los pros y contrar de cada una? + * ¿El usuario puede revertir una elección influenciada o automatizada posteriormente? -To put these ethical challenges in real-world contexts, it helps to look at case studies that highlight the potential harms and consequences to individuals and society, when such ethics violations are overlooked. +### 3. Casos de estudio -Here are a few examples: +Para poner estos desafíos éticos en contexto del mundo real, ayuda ver casos de estudio que destacan el daño potencial y las consecuencias a individuos y sociedad, cuando dichas violaciones éticas son pasadas por alto. -| Ethics Challenge | Case Study | +Aquí hay algunos ejemplos: + +| Desafío de ética | Caso de estudio | |--- |--- | -| **Informed Consent** | 1972 - [Tuskegee Syphillis Study](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - African American men who participated in the study were promised free medical care _but deceived_ by researchers who failed to inform subjects of their diagnosis or about availability of treatment. Many subjects died & partners or children were affected; the study lasted 40 years. | -| **Data Privacy** | 2007 - The [Netflix data prize](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) provided researchers with _10M anonymized movie rankings from 50K customers_ to help improve recommendation algorithms. However, researchers were able to correlate anonymized data with personally-identifiable data in _external datasets_ (e.g., IMDb comments) - effectively "de-anonymizing" some Netflix subscribers.| -| **Collection Bias** | 2013 - The City of Boston [developed Street Bump](https://www.boston.gov/transportation/street-bump), an app that let citizens report potholes, giving the city better roadway data to find and fix issues. However, [people in lower income groups had less access to cars and phones](https://hbr.org/2013/04/the-hidden-biases-in-big-data), making their roadway issues invisible in this app. Developers worked with academics to _equitable access and digital divides_ issues for fairness. | -| **Algorithmic Fairness** | 2018 - The MIT [Gender Shades Study](http://gendershades.org/overview.html) evaluated the accuracy of gender classification AI products, exposing gaps in accuracy for women and persons of color. A [2019 Apple Card](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) seemed to offer less credit to women than men. Both illustrated issues in algorithmic bias leading to socio-economic harms.| -| **Data Misrepresentation** | 2020 - The [Georgia Department of Public Health released COVID-19 charts](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) that appeared to mislead citizens about trends in confirmed cases with non-chronological ordering on the x-axis. This illustrates misrepresentation through visualization tricks. | -| **Illusion of free choice** | 2020 - Learning app [ABCmouse paid $10M to settle an FTC complaint](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) where parents were trapped into paying for subscriptions they couldn't cancel. This illustrates dark patterns in choice architectures, where users were nudged towards potentially harmful choices. | -| **Data Privacy & User Rights** | 2021 - Facebook [Data Breach](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) exposed data from 530M users, resulting in a $5B settlement to the FTC. It however refused to notify users of the breach violating user rights around data transparency and access. | +| **Consentimiento informado** | 1972 - [Estudio de sífilis Tuskegee](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - A los hombres afroamericanos que participaron en el estudio le fue prometido tratamiento médico gratuito _pero fueron engañados_ por los investigadores quienes fallaron al informar a los sujetos en sus diagnósticos o en la disponibilidad del tratamiento. Muchos sujetos murieron y los compañeros o hijos fueron afectados; el estudio duró 40 años. | +| **Privacidad de los datos** | 2007 - El [premio de datos de Netflix](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) otorgó a investigadores con _10M de clasificaciones anóminas de 50K clientes_ para ayudar a mejorar los algoritmos de recomendación. Sin embargo, los investigadores fueron capaces de correlacionar datos anónimos con datos personalmente identificables en _conjuntos de datos externos_ (por ejemplo, comentarios en IMDb) - efectivamente "des-anonimizando" a algunos subscriptores de Netflix.| +| **Sesgo de colección** | 2013 - La ciudad de Boston [desarrolló Street Bump](https://www.boston.gov/transportation/street-bump), una app que permite a los ciudadanos reportar baches, dando a la ciudad mejores datos de la carretera para encontrar y reparar desperfectos. Sin embargo, [la gente en los grupos con menores ingresos tuvieron menos acceso a autos y teléfonos](https://hbr.org/2013/04/the-hidden-biases-in-big-data), haciendo sus problemas de carretera invisibles para la app. Los desarrolladores trabajaron en conjunto con académicos para cambiar _el acceso equitativo y brecha digital_ y así fuese más justo. | +| **Justicia de algoritmos** | 2018 - El [estudio de tonos de género](http://gendershades.org/overview.html) del MIT evaluó la precisión de productos de clasificación de género , exponiendo brechas en la precisión para mujeres y personas de color. Una [tarjeta 2019 de Apple](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) parecía ofrecer menos crédit a mujeres que a hombres. Ambos ilustraron problemas en sesgos de algoritmos llevando a daños socio-económicos. +| **Malinterpretación de datos** | 2020 - El [departamento de salud pública de Georgia liberó gráficos de COVID-19](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) que parecían malinformar a los ciudadanos acerca de las tendencias en los casos confirmados sin orden cronológico en el eje x. Esto ilustra la malinterpretación a través de visualizaciones engañosas. | +| **Ilusión de libertad de elección** | 2020 - La aplicación de aprendizaje [ABCmouse pagó $10M para asentar una queja FTC](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) donde los padres fueron engañados para pagar subscripciones que no podían cancelar. Esto ilustra los patrones obscuros en arquitecturas de elección, donde los usuarios fueron empujados hacia elecciones potencialmente dañinas. | +| **Privacidad de los datos y derechos de usuario** | 2021 - La [infracción de datos](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) de Facebook expuso datos de 530M de usuarios, resultando en un acuerdo de $5B para la FTC. Sin embargo, esto rechazó notificar a los usuarios de la brecha violando los derechos de usuarios alrededor de la transparencia y acceso de datos. | -Want to explore more case studies? Check out these resources: -* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - ethics dilemmas across diverse industries. -* [Data Science Ethics course](https://www.coursera.org/learn/data-science-ethics#syllabus) - landmark case studies explored. -* [Where things have gone wrong](https://deon.drivendata.org/examples/) - deon checklist with examples +¿Quieres explorar más casos de estudio? Revisa los siguientes recursos: +* [Ética desenvuelta](https://ethicsunwrapped.utexas.edu/case-studies) - dilemas éticos en diversas industrias. +* [Curso de ética en ciencia de datos](https://www.coursera.org/learn/data-science-ethics#syllabus) - referencía los casos de estudio explorados. +* [Donde las cosas han ido mal](https://deon.drivendata.org/examples/) - lista de comprobación de deon con ejemplos -> 🚨 Think about the case studies you've seen - have you experienced, or been affected by, a similar ethical challenge in your life? Can you think of at least one other case study that illustrates one of the ethical challenges we've discussed in this section? +> 🚨 Piensa en los casos de estudio que has visto - ¿has experimentado o sido afectado por un desafío ético similar en tu vida? ¿Puedes pensar en al menos otro caso de estudio que ilustre uno de los desafíos éticos que discutimos en esta sección? -## Applied Ethics +## Ética aplicada -We've talked about ethics concepts, challenges ,and case studies in real-world contexts. But how do we get started _applying_ ethical principles and practices in our projects? And how do we _operationalize_ these practices for better governance? Let's explore some real-world solutions: +Hemos hablado de conceptos éticos, desafíos y casos de estudio en contextos del mundo real. Pero ¿cómo podemos _aplicar_ los principios éticos y prácticas en nuestros proyectos? y ¿cómo _aplicamos_ estas prácticas para una mejor gobernanza? Exploremos algunas soluciones del mundo real: -### 1. Professional Codes +### 1. Códigos profesionales -Professional Codes offer one option for organizations to "incentivize" members to support their ethical principles and mission statement. Codes are _moral guidelines_ for professional behavior, helping employees or members make decisions that align with their organization's principles. They are only as good as the voluntary compliance from members; however, many organizations offer additional rewards and penalties to motivate compliance from members. +Los códigos profesionales ofrecen una opción para que las organizaciones "incentiven" a los miembros a apoyar sus principios éticos y su misión. Los códigos son _guías morales_ para el comportamiento profesional, que ayudan a los empleados o miembros a tomar decisiones que se alinea con sus principios de organización. Estas son tan buenas como el cumplimiento voluntario de los miembros; sin embargo, muchas organizaciones ofrecen incentivos adicionales y penalizaciones para motivar el cumplimiento de los miembros. -Examples include: +Los ejemplos incluyen: - * [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) Code of Ethics - * [Data Science Association](http://datascienceassn.org/code-of-conduct.html) Code of Conduct (created 2013) - * [ACM Code of Ethics and Professional Conduct](https://www.acm.org/code-of-ethics) (since 1993) + * Código de ética de [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) + * Código de conducta de la [Asociación de ciencia de datos](http://datascienceassn.org/code-of-conduct.html) (creado en 2013) + * [Código de ética y conducta profesional de ACM](https://www.acm.org/code-of-ethics) (desde 1993) -> 🚨 Do you belong to a professional engineering or data science organization? Explore their site to see if they define a professional code of ethics. What does this say about their ethical principles? How are they "incentivizing" members to follow the code? +> 🚨 ¿Perteneces a una organización profesional de ingeniería o ciencia de datos? Explora su sitio para ver si definen un código de ética profesional. ¿Qué te dice acerca de sus principios éticos? ¿Cómo "incentivan" a los miembros para que sigan el código? -### 2. Ethics Checklists +### 2. Listas de comprobación de ética -While professional codes define required _ethical behavior_ from practitioners, they [have known limitations](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) in enforcement, particularly in large-scale projects. Instead, many data Science experts [advocate for checklists](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), that can **connect principles to practices** in more deterministic and actionable ways. +Mientras los códigos profesionales defiene los _comportamientos éticos_ requerido por sus practicantes, estos tienen [limitaciones conocidas](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) en su aplicación, particularmente en proyectos a gran escala. En su lugar, muchos expertos en ciencia de datos [abogan por listas de comprobación](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), que pueden **conectar principios a prácticas** en formas más determinísticas y accionables. -Checklists convert questions into "yes/no" tasks that can be operationalized, allowing them to be tracked as part of standard product release workflows. +Las listas de comprobación convierten preguntas en tareas de "sí/no" que pueden ser operadas, permitiendo darles seguimiento como parte de flujos de trabajo de liberación de productos estándar. -Examples include: - * [Deon](https://deon.drivendata.org/) - a general-purpose data ethics checklist created from [industry recommendations](https://deon.drivendata.org/#checklist-citations) with a command-line tool for easy integration. - * [Privacy Audit Checklist](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - provides general guidance for information handling practices from legal and social exposure perspectives. - * [AI Fairness Checklist](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - created by AI practitioners to support the adoption and integration of fairness checks into AI development cycles. - * [22 questions for ethics in data and AI](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - more open-ended framework, structured for initial exploration of ethical issues in design, implementation, and organizational, contexts. +Los ejemplos incluyen: + * [Deon](https://deon.drivendata.org/) - una lista de comprobación de ética de datos de propósito general creada a partir de [recomendaciones de la industria](https://deon.drivendata.org/#checklist-citations) con una herramienta de línea de comandos para su fácil integración. + * [Lista de comprobación de auditoría de privacidad](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - provee orientación general para prácticas de manejo de la información desde perspectivas legales y sociales. + * [Lista de comprobación de justicia de AI](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - creada por practicantes de AI para soportar la adopción e integración de controles justos en los ciclos de desarrollo de AI. + * [22 preguntas para ética en datos y AI](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - marcos de trabajo más abiertos, estructurados para la exploración inicial de problemas éticos en contextos de diseño, implementación y organización. -### 3. Ethics Regulations +### 3. Regulaciones éticas -Ethics is about defining shared values and doing the right thing _voluntarily_. **Compliance** is about _following the law_ if and where defined. **Governance** broadly covers all the ways in which organizations operate to enforce ethical principles and comply with established laws. +La ética trata de definir valores compartidos y hacer lo correcto _voluntariamente_. El **cumplimiento** trata de _seguir la ley_ donde se define. La **gobernanza** cubre ampliamente todas las formas en las cuales las organizaciones operan para hacer cumplir los principios éticos y seguir las leyes establecidas. -Today, governance takes two forms within organizations. First, it's about defining **ethical AI** principles and establishing practices to operationalize adoption across all AI-related projects in the organization. Second, it's about complying with all government-mandated **data protection regulations** for regions it operates in. +Hoy en día, la gobernanza toma dos formas dentro de la organización. Primero, define los principios **éticos de AI** y establece prácticas para promover la adopción en todos los proyectos relacionados a AI en la organización. Segundo, trata de cumplir con todoso los mandatos de gobierno en **regulaciones de protección de datos** para las regiones en las cuales opera. -Examples of data protection and privacy regulations: +Ejemplos de protección de datos y regulaciones de privacidad: - * `1974`, [US Privacy Act](https://www.justice.gov/opcl/privacy-act-1974) - regulates _federal govt._ collection, use ,and disclosure of personal information. - * `1996`, [US Health Insurance Portability & Accountability Act (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - protects personal health data. - * `1998`, [US Children's Online Privacy Protection Act (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - protects data privacy of children under 13. - * `2018`, [General Data Protection Regulation (GDPR)](https://gdpr-info.eu/) - provides user rights, data protection ,and privacy. - * `2018`, [California Consumer Privacy Act (CCPA)](https://www.oag.ca.gov/privacy/ccpa) gives consumers more _rights_ over their (personal) data. - * `2021`, China's [Personal Information Protection Law](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) just passed, creating one of the strongest online data privacy regulations worldwide. + * `1974`, [Ley de privacidad de EE.UU.](https://www.justice.gov/opcl/privacy-act-1974) - regula al _gobierno federal_ la recolección, uso y divulgación de información personal. + * `1996`, [Ley de responsabilidad y portabilidad de seguro de salud de EE.UU. (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - protege los datos de salud personales. + * `1998`, [Ley de protección de la privacidad en línea para niños de EE.UU. (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - protege la privacidad de los datos para menores de 13 años. + * `2018`, [Regulación de protección general de los datos (GDPR)](https://gdpr-info.eu/) - provee derechos de usuario, protección de datos y privacidad. + * `2018`, [Ley de privacidad para los consumidores de California (CCPA)](https://www.oag.ca.gov/privacy/ccpa) da a los consumidores más _derechos_ sobre sus datos (personales). + * `2021`, [Ley China de protección de la información personal](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) recién establecida, crea una de las regulaciones más grandes a nivel mundial respecto a privacidad de los datos. -> 🚨 The European Union defined GDPR (General Data Protection Regulation) remains one of the most influential data privacy regulations today. Did you know it also defines [8 user rights](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) to protect citizens' digital privacy and personal data? Learn about what these are, and why they matter. +> 🚨 La Unión Europea definió la GDPR (regulación general de protección de datos) quedando como una de las regulaciones a la privacidad de los datos más influyentes de hoy en día. ¿Sabías que también define [8 derechos de usuario](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) para la protección de la privacidad digital de los ciudadanos y datos personales? Aprende más acerca de qué son y porqué importan. -### 4. Ethics Culture +### 4. Cultura ética -Note that there remains an intangible gap between _compliance_ (doing enough to meet "the letter of the law") and addressing [systemic issues](https://www.coursera.org/learn/data-science-ethics/home/week/4) (like ossification, information asymmetry ,and distributional unfairness) that can speed up the weaponization of AI. +Nota que existe una brecha intangible entre _cumplimiento_ (hacer suficiente para cumplir "lo designado por ley") y atender [problemas sistémicos](https://www.coursera.org/learn/data-science-ethics/home/week/4) (como la osificación, asimetría de la información e injusticia distribucional) que acelera el armamento de la AI. -The latter requires [collaborative approaches to defining ethics cultures](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) that build emotional connections and consistent shared values _across organizations_ in the industry. This calls for more [formalized data ethics cultures](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) in organizations - allowing _anyone_ to [pull the Andon cord](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (to raise ethics concerns early in the process) and making _ethical assessments_ (e.g., in hiring) a core criteria team formation in AI projects. +Lo último requier [enfoques colaborativos para definir culturas de ética](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) que construyan conexiones emocionales y valores compartidos consistentes _a través de las organizaciones_ en la industria. Esto hace un llamado a [culturas de ética de datos más formalizadas](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) en las organizaciones - permitiendo a _cualquiera_ tirar del [cordón de Andon](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (para plantear cuestiones éticas desde el principio en el proceso) y hacer de las _evaluaciones éticas_ (por ejemplo, en la contratación) un criterio principal en la formación de equipos en proyectos de AI. --- -## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/3) 🎯 -## Review & Self Study +## [Examen posterior a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/3) 🎯 +## Revisión y auto-estudio -Courses and books help with understanding core ethics concepts and challenges, while case studies and tools help with applied ethics practices in real-world contexts. Here are a few resources to start with. +Los siguientes cursos y libros te facilitarán el entendimiento de conceptos éticos principales y desafíos, mientras que los casos de estudio y herramientas te ayudarán con las prácticas éticas aplicadas en contextos del mundo real. Aquí tienes algunos recursos con los que comenzar. -* [Machine Learning For Beginners](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - lesson on Fairness, from Microsoft. -* [Principles of Responsible AI](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - free learning path from Microsoft Learn. -* [Ethics and Data Science](https://resources.oreilly.com/examples/0636920203964) - O'Reilly EBook (M. Loukides, H. Mason et. al) -* [Data Science Ethics](https://www.coursera.org/learn/data-science-ethics#syllabus) - online course from the University of Michigan. -* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - case studies from the University of Texas. +* [Aprendizaje automático para principiantes](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - lecciones de justicia, de Microsoft. +* [Principios de AI responsable](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - ruta de aprendizaje gratuito de Microsoft Learn. +* [Ética y Ciencia de Datos](https://resources.oreilly.com/examples/0636920203964) - Libro electrónico de O'Reilly (M. Loukides, H. Mason et. al) +* [Ética de Ciencia de Datos](https://www.coursera.org/learn/data-science-ethics#syllabus) - curso en línea de la Universidad de Michigan. +* [Ética desenvuelta](https://ethicsunwrapped.utexas.edu/case-studies) - casos de estudio de la Universidad de Texas. -# Assignment +# Asignación -[Write A Data Ethics Case Study](assignment.md) +[Escribe un caso de estudio de ética de datos](assignment.md) From 1f4362c95778f5958b7ed315f051d4187cb85bc3 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Wed, 6 Oct 2021 20:30:46 -0500 Subject: [PATCH 05/30] feat: Module 1 section 3 - Add file content to be translated --- .../translations/README.es.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/1-Introduction/03-defining-data/translations/README.es.md b/1-Introduction/03-defining-data/translations/README.es.md index e69de29b..0582ebb4 100644 --- a/1-Introduction/03-defining-data/translations/README.es.md +++ b/1-Introduction/03-defining-data/translations/README.es.md @@ -0,0 +1,69 @@ +# Defining Data + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| +|:---:| +|Defining Data - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +Data is facts, information, observations and measurements that are used to make discoveries and to support informed decisions. A data point is a single unit of data with in a dataset, which is collection of data points. Datasets may come in different formats and structures, and will usually be based on its source, or where the data came from. For example, a company's monthly earnings might be in a spreadsheet but hourly heart rate data from a smartwatch may be in [JSON](https://stackoverflow.com/a/383699) format. It's common for data scientists to work with different types of data within a dataset. + +This lesson focuses on identifying and classifying data by its characteristics and its sources. + +## [Pre-Lecture Quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) +## How Data is Described +**Raw data** is data that has come from its source in its initial state and has not been analyzed or organized. In order to make sense of what is happening with a dataset, it needs to be organized into a format that can be understood by humans as well as the technology they may use to analyze it further. The structure of a dataset describes how it's organized and can be classified at structured, unstructured and semi-structured. These types of structure will vary, depending on the source but will ultimately fit in these three categories. +### Quantitative Data +Quantitative data is numerical observations within a dataset and can typically be analyzed, measured and used mathematically. Some examples of quantitative data are: a country's population, a person's height or a company's quarterly earnings. With some additional analysis, quantitative data could be used to discover seasonal trends of the Air Quality Index (AQI) or estimate the probability of rush hour traffic on a typical work day. + +### Qualitative Data +Qualitative data, also known as categorical data is data that cannot be measured objectively like observations of quantitative data. It's generally various formats of subjective data that captures the quality of something, such as a product or process. Sometimes, qualitative data is numerical and wouldn't be typically used mathematically, like phone numbers or timestamps. Some examples of qualitative data are: video comments, the make and model of a car or your closest friends' favorite color. Qualitative data could be used to understand which products consumers like best or identifying popular keywords in job application resumes. + +### Structured Data +Structured data is data that is organized into rows and columns, where each row will have the same set of columns. Columns represent a value of a particular type and will be identified with a name describing what the value represents, while rows contain the actual values. Columns will often have a specific set of rules or restrictions on the values, to ensure that the values accurately represent the column. For example imagine a spreadsheet of customers where each row must have a phone number and the phone numbers never contain alphabetical characters. There may be rules applied on the phone number column to make sure it's never empty and only contains numbers. + +A benefit of structured data is that it can be organized in such a way that it can be related to other structured data. However, because the data is designed to be organized in a specific way, making changes to its overall structure can take a lot of effort to do. For example, adding an email column to the customer spreadsheet that cannot be empty means you'll need figure out how you'll add these values to the existing rows of customers in the dataset. + +Examples of structured data: spreadsheets, relational databases, phone numbers, bank statements + +### Unstructured Data +Unstructured data typically cannot be categorized into into rows or columns and doesn't contain a format or set of rules to follow. Because unstructured data has less restrictions on its structure it's easier to add new information in comparison to a structured dataset. If a sensor capturing data on barometric pressure every 2 minutes has received an update that now allows it to measure and record temperature, it doesn't require altering the existing data if it's unstructured. However, this may make analyzing or investigating this type of data take longer. For example, a scientist who wants to find the average temperature of the previous month from the sensors data, but discovers that the sensor recorded an "e" in some of its recorded data to note that it was broken instead of a typical number, which means the data is incomplete. + +Examples of unstructured data: text files, text messages, video files + +### Semi-structured +Semi-structured data has features that make it a combination of structured and unstructured data. It doesn't typically conform to a format of rows and columns but is organized in a way that is considered structured and may follow a fixed format or set of rules. The structure will vary between sources, such as a well defined hierarchy to something more flexible that allows for easy integration of new information. Metadata are indicators that help decide how the data is organized and stored and will have various names, based on the type of data. Some common names for metadata are tags, elements, entities and attributes. For example, a typical email message will have a subject, body and a set of recipients and can be organized by whom or when it was sent. + +Examples of unstructured data: HTML, CSV files, JavaScript Object Notation (JSON) + +## Sources of Data + +A data source is the initial location of where the data was generated, or where it "lives" and will vary based on how and when it was collected. Data generated by its user(s) are known as primary data while secondary data comes from a source that has collected data for general use. For example, a group of scientists collecting observations in a rainforest would be considered primary and if they decide to share it with other scientists it would be considered secondary to those that use it. + +Databases are a common source and rely on a database management system to host and maintain the data where users use commands called queries to explore the data. Files as data sources can be audio, image, and video files as well as spreadsheets like Excel. Internet sources are a common location for hosting data, where databases as well as files can be found. Application programming interfaces, also known as APIs allow programmers to create ways to share data with external users through the internet, while the process of web scraping extracts data from a web page. The [lessons in Working with Data](/2-Working-With-Data) focus on how to use various data sources. + +## Conclusion + +In this lesson we have learned: + +- What data is +- How data is described +- How data is classified and categorized +- Where data can be found + +## 🚀 Challenge + +Kaggle is an excellent source of open datasets. Use the [dataset search tool](https://www.kaggle.com/datasets) to find some interesting datasets and classify 3-5 datasets with this criteria: + +- Is the data quantitative or qualitative? +- Is the data structured, unstructured, or semi-structured? + +## [Post-Lecture Quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) + + + +## Review & Self Study + +- This Microsoft Learn unit, titled [Classify your Data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) has a detailed breakdown of structured, semi-structured, and unstructured data. + +## Assignment + +[Classifying Datasets](assignment.md) From 8d5b6302850a95217922550c41c8dd39ff72851d Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Wed, 6 Oct 2021 22:16:58 -0500 Subject: [PATCH 06/30] feat: Translation of module 1 - section 3 * translation of main readme file --- .../translations/README.es.md | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/1-Introduction/03-defining-data/translations/README.es.md b/1-Introduction/03-defining-data/translations/README.es.md index 0582ebb4..16d11409 100644 --- a/1-Introduction/03-defining-data/translations/README.es.md +++ b/1-Introduction/03-defining-data/translations/README.es.md @@ -1,69 +1,69 @@ -# Defining Data +# Definiendo datos -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| |:---:| -|Defining Data - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +|Definiendo datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | -Data is facts, information, observations and measurements that are used to make discoveries and to support informed decisions. A data point is a single unit of data with in a dataset, which is collection of data points. Datasets may come in different formats and structures, and will usually be based on its source, or where the data came from. For example, a company's monthly earnings might be in a spreadsheet but hourly heart rate data from a smartwatch may be in [JSON](https://stackoverflow.com/a/383699) format. It's common for data scientists to work with different types of data within a dataset. +Los datos son hechos, información, observaciones y mediciones que son usados para realizar descubrimientos y soportar decisiones informadas. Un punto de datos es una unidad simple de datos dentro de un conjunto de datos, lo cual es una colección de puntos de datos. Los conjuntos de datos pueden venir en distintos formatos y estructuras, y comúnmente se basan en su fuente, o de donde provienen los datos. Por ejemplo, las ganancias mensuales de una compañía pueden estar en una hoja de cálculo, pero los datos del ritmo cardiaco por hora de un reloj inteligente pueden estar en un formato [JSON](https://stackoverflow.com/a/383699). Es algo común para los científicos de datos el trabajar con distintos tipos de datos dentro de un conjunto de datos. -This lesson focuses on identifying and classifying data by its characteristics and its sources. +Esta lección se enfoca en la identificación y clasificación de datos por sus características y sus fuentes. -## [Pre-Lecture Quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) -## How Data is Described -**Raw data** is data that has come from its source in its initial state and has not been analyzed or organized. In order to make sense of what is happening with a dataset, it needs to be organized into a format that can be understood by humans as well as the technology they may use to analyze it further. The structure of a dataset describes how it's organized and can be classified at structured, unstructured and semi-structured. These types of structure will vary, depending on the source but will ultimately fit in these three categories. -### Quantitative Data -Quantitative data is numerical observations within a dataset and can typically be analyzed, measured and used mathematically. Some examples of quantitative data are: a country's population, a person's height or a company's quarterly earnings. With some additional analysis, quantitative data could be used to discover seasonal trends of the Air Quality Index (AQI) or estimate the probability of rush hour traffic on a typical work day. +## [Examen previo a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) +## Como se describen los datos +Los **datos en crudo** son datos que provienen de su fuente en su estado inicial y estos no han sido analizados u organizados. Con el fin de que tenga sentido lo que sucede con un conjunto de datos, es necesario organizarlos en un formato que pueda ser entendido tanto por humanos como por la tecnología usada para analizarla a mayor detalle. La estructura de un conjunto de datos describe como está organizado y puede ser clasificado de forma estructurada, no estructurada y semi-estructurada. Estos tipos de estructuras podrían variar, dependiendo de la fuente pero finalmente caerá en una de estas categorías. +### Datos cuantitativos +Los datos cuantitativos son observaciones numéricas en un conjunto de datos que puede ser típicamente analizados, medidos y usados matemáticamente. Algunos ejemplos de datos cuantitativos son: la población de un país, la altura de una persona o las ganancias trimestrales de una compañía. Con algo de análisis adicional, los datos cuantitativos podrían ser usados para descubrir tendencias de temporada en el índice de calidad del aire (AQI) o estimar la probabilidad la hora pico de embotellamiento vial en un día laboral típico. -### Qualitative Data -Qualitative data, also known as categorical data is data that cannot be measured objectively like observations of quantitative data. It's generally various formats of subjective data that captures the quality of something, such as a product or process. Sometimes, qualitative data is numerical and wouldn't be typically used mathematically, like phone numbers or timestamps. Some examples of qualitative data are: video comments, the make and model of a car or your closest friends' favorite color. Qualitative data could be used to understand which products consumers like best or identifying popular keywords in job application resumes. +### Datos cualitativos +Los datos cualitativos, también conocidos como datos categóricos son datos que no pueden ser medidos de forma objetiva en comparación con los datos cuantitativos. Comúnmente son formatos de datos subjetivos que capturan la calidad de algo, como un producto o un proceso. Algunas veces, los datos cuantitativos son numéricos y no pudiesen ser usados matemáticamente, como números telefónicos o marcas de tiempo. Algunos ejemplos de datos cualitativos son: comentarios en los videos, la marca y modelo de un automóvil o el color favorito de tus amigos más cercanos. Los datos cualitativos pueden ser usados para entender qué productos le gustan más a los usuarios o el identificar las palabras clave populares en solicitudes de empleo. -### Structured Data -Structured data is data that is organized into rows and columns, where each row will have the same set of columns. Columns represent a value of a particular type and will be identified with a name describing what the value represents, while rows contain the actual values. Columns will often have a specific set of rules or restrictions on the values, to ensure that the values accurately represent the column. For example imagine a spreadsheet of customers where each row must have a phone number and the phone numbers never contain alphabetical characters. There may be rules applied on the phone number column to make sure it's never empty and only contains numbers. +### Datos estructurados +Los datos estructurados son datos que están organizados en filas y columnas, donde cada fila tendrá el mismo conjunto de columnas. Las columnas representan un valor de un tipo particular y serán identificadas con un nombre que describa el valor que representa, mientras que las filas contienen los valores en cuestión. Las columnas usualmente tendrán un conjunto específico de reglas o restricciones en sus valores, para asegurar que los valores presentan a la columna de forma precisa. Por ejemplo, imagina una hoja de cálculo de clientes donde cada fila debe tener un número telefónico y los números telefónicos nunca contienen caracteres alfabéticos. Habrá que aplicar reglas a la columna de número telefónico para asegurar éste nunca está vacío y contiene únicamente números. -A benefit of structured data is that it can be organized in such a way that it can be related to other structured data. However, because the data is designed to be organized in a specific way, making changes to its overall structure can take a lot of effort to do. For example, adding an email column to the customer spreadsheet that cannot be empty means you'll need figure out how you'll add these values to the existing rows of customers in the dataset. +Un beneficio de los datos estructurados es que estos pueden ser organizados de tal forma que pueden relacionarse con otros datos estructurados. Sin embargo, ya que los datos están diseñados para ser organizados de forma específica, el realizar cambios a su estructura en general puede conllevar un gran esfuerzo. Por ejemplo, agregar una columna de correo a la hoja de cálculo de clientes para que no permita esté vacía significa que necesitas descubrir como agregar estos valores a las filas existentes de clientes en el conjunto de datos. -Examples of structured data: spreadsheets, relational databases, phone numbers, bank statements +Ejemplos de datos estructurados: hojas de cálculo, bases de datos relacionales, número de teléfono, estados de cuenta del banco. -### Unstructured Data -Unstructured data typically cannot be categorized into into rows or columns and doesn't contain a format or set of rules to follow. Because unstructured data has less restrictions on its structure it's easier to add new information in comparison to a structured dataset. If a sensor capturing data on barometric pressure every 2 minutes has received an update that now allows it to measure and record temperature, it doesn't require altering the existing data if it's unstructured. However, this may make analyzing or investigating this type of data take longer. For example, a scientist who wants to find the average temperature of the previous month from the sensors data, but discovers that the sensor recorded an "e" in some of its recorded data to note that it was broken instead of a typical number, which means the data is incomplete. +### Datos no estructurados +Los datos no estructurados no pueden ser típicamente categorizados en filas o columnas y no contienen un formato o conjunto de reglas a seguir. Ya que los datos no estructurados tienen menos restricciones en su estructura es más fácil agregar nueva información en comparación con los conjuntos de datos estructurados. Si un sensor captura datos de presión barométrica cada 2 minutos y ha recibido una actualización que ahora permite medir y granar la temperatura, no se requiere la modificación de los datos existentes si estos son no estructurados. Sin embargo, esto puede hacer que el análisis o la investigación de este tipo de datos tomará más tiempo. Por ejemplo, un científico quiere encontrar la temperatura promedio del mes previo desde los sensores de datos, pero descubre que los sensores grabaron una "e" en algunos de sus datos grabados para puntualizar que éste está averiado en lugar de grabar un número, lo cual significa que los datos están incompletos. -Examples of unstructured data: text files, text messages, video files +Ejemplos de datos no estructurados: archivos de texto, mensajes de texto, archivos de video. -### Semi-structured -Semi-structured data has features that make it a combination of structured and unstructured data. It doesn't typically conform to a format of rows and columns but is organized in a way that is considered structured and may follow a fixed format or set of rules. The structure will vary between sources, such as a well defined hierarchy to something more flexible that allows for easy integration of new information. Metadata are indicators that help decide how the data is organized and stored and will have various names, based on the type of data. Some common names for metadata are tags, elements, entities and attributes. For example, a typical email message will have a subject, body and a set of recipients and can be organized by whom or when it was sent. +### Datos semi-estructurados +Los datos semi-estructurados combinan características tanto de datos estructurados como no estructurados. Generalmente no se ajustan a un formato de filas y columnas pero están organizados de tal forma que son considerados estructurados y pueden seguir un formato fijo o conjunto de reglas. La estructura cambiará entre las fuentes, así como también la jerarquía definida para algo más flexible que permite la fácil integración de información nueva. Los metadatos son indicadores que facilitan el decidir como se organizan y almacenan los datos y tendrán varios nombres, basados en los tipos de datos. Algunos nombres comunes para los metadatos son etiquetas, elementos, entidades y atributos. Por ejemplo, un mensaje de correo típico tendrá un asunto, un cuerpo y un conjunto de destinatarios y puede ser organizado por quién o cuando fue enviado. -Examples of unstructured data: HTML, CSV files, JavaScript Object Notation (JSON) +Ejemplos de datos no estructurados: HTML, archivos CSV, objetos JSON. -## Sources of Data +## Fuentes de datos -A data source is the initial location of where the data was generated, or where it "lives" and will vary based on how and when it was collected. Data generated by its user(s) are known as primary data while secondary data comes from a source that has collected data for general use. For example, a group of scientists collecting observations in a rainforest would be considered primary and if they decide to share it with other scientists it would be considered secondary to those that use it. +Una fuente de datos es la ubicación inicial en donde los datos son generados, o donde estos "viven" y varían basados en cómo y cuándo fueron recolectados. Los datos generados por sus usuarios con conocidos como información primaria mientras que la información secundaria proviene de una fuente que ha recolectado datos para uso general. Por ejemplo, un grupo de científicos recolectó observaciones en la selva tropical, dicha información es considerada como primaria, pero si deciden compartirla con otros científicos sería considerada como secundaria para aquellos que la usen. -Databases are a common source and rely on a database management system to host and maintain the data where users use commands called queries to explore the data. Files as data sources can be audio, image, and video files as well as spreadsheets like Excel. Internet sources are a common location for hosting data, where databases as well as files can be found. Application programming interfaces, also known as APIs allow programmers to create ways to share data with external users through the internet, while the process of web scraping extracts data from a web page. The [lessons in Working with Data](/2-Working-With-Data) focus on how to use various data sources. +Las bases de datos son una fuente común y recaen en sistemas de gestión de bases de datos para albergar y mantener los datos donde los usuarios usan comandos llamados consultas (queries) para explorar los datos. Los archivos como fuentes de datos pueden ser archivos de audio, imagen y video también como hojas de cálculo como Excel. Las fuentes de Internet son una ubicación común para albergar datos, donde se pueden encontrar tanto bases de datos como archivos. Las interfaces de programación de aplicaciones, también conocidas como APIs, le permiten a los programadores crear formas para compartir los datos con usuarios externos a través de internet, mientras que los procesos de "web scraping" extraen datos desde una página web. Las [lecciones de trabajando con datos](/2-Working-With-Data) se enfocan en como usar las distintas fuentes de datos. -## Conclusion +## Conclusiones -In this lesson we have learned: +En esta lección has aprendido: -- What data is -- How data is described -- How data is classified and categorized -- Where data can be found +- Qué son los datos +- Cómo se describen los datos +- Cómo se clasifican y categorizan los datos +- Dónde se pueden encontrar los datos -## 🚀 Challenge +## 🚀 Desafío -Kaggle is an excellent source of open datasets. Use the [dataset search tool](https://www.kaggle.com/datasets) to find some interesting datasets and classify 3-5 datasets with this criteria: +Kaggle es una fuente excelente de conjuntos de datos abiertos. Usa los [conjuntos de datos de la herramienta de búsqueda](https://www.kaggle.com/datasets) para encontrar algunos conjuntos de datos interesantes y clasifica de 3 a 5 conjuntos de datos con los siguientes criterios: -- Is the data quantitative or qualitative? -- Is the data structured, unstructured, or semi-structured? +- ¿Los datos son cuantitativos o cualitativos? +- ¿Los datos son estruturados, no estructurados o semi-estructurados? -## [Post-Lecture Quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) +## [Examen posterior a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) -## Review & Self Study +## Revisión y auto-estudio -- This Microsoft Learn unit, titled [Classify your Data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) has a detailed breakdown of structured, semi-structured, and unstructured data. +- Esta unidad de Microsoft Lean, titulada [clasifica tus datos](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) tiene un desglose detallado de datos estructurados, semi-estructurados y no estructurados. -## Assignment +## Assignación -[Classifying Datasets](assignment.md) +[Clasificación de conjuntos de datos](assignment.md) From def34abe88b682ab5faa37ebee9cbbc4897633cf Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Wed, 6 Oct 2021 22:34:18 -0500 Subject: [PATCH 07/30] feat: Module 1 section 4 - Add file content to be translated --- .../translations/README.es.md | 263 ++++++++++++++++++ 1 file changed, 263 insertions(+) diff --git a/1-Introduction/04-stats-and-probability/translations/README.es.md b/1-Introduction/04-stats-and-probability/translations/README.es.md index e69de29b..3a4a4ae9 100644 --- a/1-Introduction/04-stats-and-probability/translations/README.es.md +++ b/1-Introduction/04-stats-and-probability/translations/README.es.md @@ -0,0 +1,263 @@ +# A Brief Introduction to Statistics and Probability + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| Statistics and Probability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +Statistics and Probability Theory are two highly related areas of Mathematics that are highly relevant to Data Science. It is possible to operate with data without deep knowledge of mathematics, but it is still better to know at least some basic concepts. Here we will present a short introduction that will help you get started. + +[![Intro Video](images/video-prob-and-stats.png)](https://youtu.be/Z5Zy85g4Yjw) + + +## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/6) + +## Probability and Random Variables + +**Probability** is a number between 0 and 1 that expresses how probable an **event** is. It is defined as a number of positive outcomes (that lead to the event), divided by total number of outcomes, given that all outcomes are equally probable. For example, when we roll a dice, the probability that we get an even number is 3/6 = 0.5. + +When we talk about events, we use **random variables**. For example, the random variable that represents a number obtained when rolling a dice would take values from 1 to 6. Set of numbers from 1 to 6 is called **sample space**. We can talk about the probability of a random variable taking a certain value, for example P(X=3)=1/6. + +The random variable in previous example is called **discrete**, because it has a countable sample space, i.e. there are separate values that can be enumerated. There are cases when sample space is a range of real numbers, or the whole set of real numbers. Such variables are called **continuous**. A good example is the time when the bus arrives. + +## Probability Distribution + +In the case of discrete random variables, it is easy to describe the probability of each event by a function P(X). For each value *s* from sample space *S* it will give a number from 0 to 1, such that the sum of all values of P(X=s) for all events would be 1. + +The most well-known discrete distribution is **uniform distribution**, in which there is a sample space of N elements, with equal probability of 1/N for each of them. + +It is more difficult to describe the probability distribution of a continuous variable, with values drawn from some interval [a,b], or the whole set of real numbers ℝ. Consider the case of bus arrival time. In fact, for each exact arrival time $t$, the probability of a bus arriving at exactly that time is 0! + +> Now you know that events with 0 probability happen, and very often! At least each time when the bus arrives! + +We can only talk about the probability of a variable falling in a given interval of values, eg. P(t1≤X<t2). In this case, probability distribution is described by a **probability density function** p(x), such that + +![P(t_1\le X1, x2, ..., xn. We can define **mean** (or **arithmetic average**) value of the sequence in the traditional way as (x1+x2+xn)/n. As we grow the size of the sample (i.e. take the limit with n→∞), we will obtain the mean (also called **expectation**) of the distribution. We will denote expectation by **E**(x). + +> It can be demonstrated that for any discrete distribution with values {x1, x2, ..., xN} and corresponding probabilities p1, p2, ..., pN, the expectation would equal to E(X)=x1p1+x2p2+...+xNpN. + +To identify how far the values are spread, we can compute the variance σ2 = ∑(xi - μ)2/n, where μ is the mean of the sequence. The value σ is called **standard deviation**, and σ2 is called a **variance**. + +## Mode, Median and Quartiles + +Sometimes, mean does not adequately represent the "typical" value for data. For example, when there are a few extreme values that are completely out of range, they can affect the mean. Another good indication is a **median**, a value such that half of data points are lower than it, and another half - higher. + +To help us understand the distribution of data, it is helpful to talk about **quartiles**: + +* First quartile, or Q1, is a value, such that 25% of the data fall below it +* Third quartile, or Q3, is a value that 75% of the data fall below it + +Graphically we can represent relationship between median and quartiles in a diagram called the **box plot**: + + + +Here we also compute **inter-quartile range** IQR=Q3-Q1, and so-called **outliers** - values, that lie outside the boundaries [Q1-1.5*IQR,Q3+1.5*IQR]. + +For finite distribution that contains a small number of possible values, a good "typical" value is the one that appears the most frequently, which is called **mode**. It is often applied to categorical data, such as colors. Consider a situation when we have two groups of people - some that strongly prefer red, and others who prefer blue. If we code colors by numbers, the mean value for a favorite color would be somewhere in the orange-green spectrum, which does not indicate the actual preference on neither group. However, the mode would be either one of the colors, or both colors, if the number of people voting for them is equal (in this case we call the sample **multimodal**). +## Real-world Data + +When we analyze data from real life, they often are not random variables as such, in a sense that we do not perform experiments with unknown result. For example, consider a team of baseball players, and their body data, such as height, weight and age. Those numbers are not exactly random, but we can still apply the same mathematical concepts. For example, a sequence of people's weights can be considered to be a sequence of values drawn from some random variable. Below is the sequence of weights of actual baseball players from [Major League Baseball](http://mlb.mlb.com/index.jsp), taken from [this dataset](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) (for your convenience, only first 20 values are shown): + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **Note**: To see the example of working with this dataset, have a look at the [accompanying notebook](notebook.ipynb). There are also a number of challenges throughout this lesson, and you may complete them by adding some code to that notebook. If you are not sure how to operate on data, do not worry - we will come back to working with data using Python at a later time. If you do not know how to run code in Jupyter Notebook, have a look at [this article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +Here is the box plot showing mean, median and quartiles for our data: + +![Weight Box Plot](images/weight-boxplot.png) + +Since our data contains information about different player **roles**, we can also do the box plot by role - it will allow us to get the idea on how parameters values differ across roles. This time we will consider height: + +![Box plot by role](images/boxplot_byrole.png) + +This diagram suggests that, on average, height of first basemen is higher that height of second basemen. Later in this lesson we will learn how we can test this hypothesis more formally, and how to demonstrate that our data is statistically significant to show that. + +> When working with real-world data, we assume that all data points are samples drawn from some probability distribution. This assumption allows us to apply machine learning techniques and build working predictive models. + +To see what the distribution of our data is, we can plot a graph called a **histogram**. X-axis would contain a number of different weight intervals (so-called **bins**), and the vertical axis would show the number of times our random variable sample was inside a given interval. + +![Histogram of real world data](images/weight-histogram.png) + +From this histogram you can see that all values are centered around certain mean weight, and the further we go from that weight - the fewer weights of that value are encountered. I.e., it is very improbable that the weight of a baseball player would be very different from the mean weight. Variance of weights show the extent to which weights are likely to differ from the mean. + +> If we take weights of other people, not from the baseball league, the distribution is likely to be different. However, the shape of the distribution will be the same, but mean and variance would change. So, if we train our model on baseball players, it is likely to give wrong results when applied to students of a university, because the underlying distribution is different. +## Normal Distribution + +The distribution of weights that we have seen above is very typical, and many measurements from real world follow the same type of distribution, but with different mean and variance. This distribution is called **normal distribution**, and it plays a very important role in statistics. + +Using normal distribution is a correct way to generate random weights of potential baseball players. Once we know mean weight `mean` and standard deviation `std`, we can generate 1000 weight samples in the following way: +```python +samples = np.random.normal(mean,std,1000) +``` + +If we plot the histogram of the generated samples we will see the picture very similar to the one shown above. And if we increase the number of samples and the number of bins, we can generate a picture of a normal distribution that is more close to ideal: + +![Normal Distribution with mean=0 and std.dev=1](images/normal-histogram.png) + +*Normal Distribution with mean=0 and std.dev=1* + +## Confidence Intervals + +When we talk about weights of baseball players, we assume that there is certain **random variable W** that corresponds to ideal probability distribution of weights of all baseball players (so-called **population**). Our sequence of weights corresponds to a subset of all baseball players that we call **sample**. An interesting question is, can we know the parameters of distribution of W, i.e. mean and variance of the population? + +The easiest answer would be to calculate mean and variance of our sample. However, it could happen that our random sample does not accurately represent complete population. Thus it makes sense to talk about **confidence interval**. + +> **Confidence interval** is the estimation of true mean of the population given our sample, which is accurate is a certain probability (or **level of confidence**). + +Suppose we have a sample X1, ..., Xn from our distribution. Each time we draw a sample from our distribution, we would end up with different mean value μ. Thus μ can be considered to be a random variable. A **confidence interval** with confidence p is a pair of values (Lp,Rp), such that **P**(Lp≤μ≤Rp) = p, i.e. a probability of measured mean value falling within the interval equals to p. + +It does beyond our short intro to discuss in detail how those confidence intervals are calculated. Some more details can be found [on Wikipedia](https://en.wikipedia.org/wiki/Confidence_interval). In short, we define the distribution of computed sample mean relative to the true mean of the population, which is called **student distribution**. + +> **Interesting fact**: Student distribution is named after mathematician William Sealy Gosset, who published his paper under the pseudonym "Student". He worked in the Guinness brewery, and, according to one of the versions, his employer did not want general public to know that they were using statistical tests to determine the quality of raw materials. + +If we want to estimate the mean μ of our population with confidence p, we need to take *(1-p)/2-th percentile* of a Student distribution A, which can either be taken from tables, or computer using some built-in functions of statistical software (eg. Python, R, etc.). Then the interval for μ would be given by X±A*D/√n, where X is the obtained mean of the sample, D is the standard deviation. + +> **Note**: We also omit the discussion of an important concept of [degrees of freedom](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)), which is important in relation to Student distribution. You can refer to more complete books on statistics to understand this concept deeper. + +An example of calculating confidence interval for weights and heights is given in the [accompanying notebooks](notebook.ipynb). + +| p | Weight mean | +|-----|-----------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +Notice that the higher is the confidence probability, the wider is the confidence interval. + +## Hypothesis Testing + +In our baseball players dataset, there are different player roles, that can be summarized below (look at the [accompanying notebook](notebook.ipynb) to see how this table can be calculated): + +| Role | Height | Weight | Count | +|------|--------|--------|-------| +| Catcher | 72.723684 | 204.328947 | 76 | +| Designated_Hitter | 74.222222 | 220.888889 | 18 | +| First_Baseman | 74.000000 | 213.109091 | 55 | +| Outfielder | 73.010309 | 199.113402 | 194 | +| Relief_Pitcher | 74.374603 | 203.517460 | 315 | +| Second_Baseman | 71.362069 | 184.344828 | 58 | +| Shortstop | 71.903846 | 182.923077 | 52 | +| Starting_Pitcher | 74.719457 | 205.163636 | 221 | +| Third_Baseman | 73.044444 | 200.955556 | 45 | + +We can notice that the mean heights of first basemen is higher than that of second basemen. Thus, we may be tempted to conclude that **first basemen are higher than second basemen**. + +> This statement is called **a hypothesis**, because we do not know whether the fact is actually true or not. + +However, it is not always obvious whether we can make this conclusion. From the discussion above we know that each mean has an associated confidence interval, and thus this difference can just be a statistical error. We need some more formal way to test our hypothesis. + +Let's compute confidence intervals separately for heights of first and second basemen: + +| Confidence | First Basemen | Second Basemen | +|------------|---------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +We can see that under no confidence the intervals overlap. That proves our hypothesis that first basemen are higher than second basemen. + +More formally, the problem we are solving is to see if **two probability distributions are the same**, or at least have the same parameters. Depending on the distribution, we need to use different tests for that. If we know that our distributions are normal, we can apply **[Student t-test](https://en.wikipedia.org/wiki/Student%27s_t-test)**. + +In Student t-test, we compute so-called **t-value**, which indicates the difference between means, taking into account the variance. It is demonstrated that t-value follows **student distribution**, which allows us to get the threshold value for a given confidence level **p** (this can be computed, or looked up in the numerical tables). We then compare t-value to this threshold to approve or reject the hypothesis. + +In Python, we can use the **SciPy** package, which includes `ttest_ind` function (in addition to many other useful statistical functions!). It computes the t-value for us, and also does the reverse lookup of confidence p-value, so that we can just look at the confidence to draw the conclusion. + +For example, our comparison between heights of first and second basemen give us the following results: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` +In our case, p-value is very low, meaning that there is strong evidence supporting that first basemen are taller. + +There are also different other types of hypothesis that we might want to test, for example: +* To prove that a given sample follows some distribution. In our case we have assumed that heights are normally distributed, but that needs formal statistical verification. +* To prove that a mean value of a sample corresponds to some predefined value +* To compare means of a number of samples (eg. what is the difference in happiness levels among different age groups) + +## Law of Large Numbers and Central Limit Theorem + +One of the reasons why normal distribution is so important is so-called **central limit theorem**. Suppose we have a large sample of independent N values X1, ..., XN, sampled from any distribution with mean μ and variance σ2. Then, for sufficiently large N (in other words, when N→∞), the mean ΣiXi would be normally distributed, with mean μ and variance σ2/N. + +> Another way to interpret the central limit theorem is to say that regardless of distribution, when you compute the mean of a sum of any random variable values you end up with normal distribution. + +From the central limit theorem it also follows that, when N→∞, the probability of the sample mean to be equal to μ becomes 1. This is known as **the law of large numbers**. + +## Covariance and Correlation + +One of the things Data Science does is finding relations between data. We say that two sequences **correlate** when they exhibit the similar behavior at the same time, i.e. they either rise/fall simultaneously, or one sequence rises when another one falls and vice versa. In other words, there seems to be some relation between two sequences. + +> Correlation does not necessarily indicate causal relationship between two sequences; sometimes both variables can depend on some external cause, or it can be purely by chance the two sequences correlate. However, strong mathematical correlation is a good indication that two variables are somehow connected. + + Mathematically, the main concept that shows the relation between two random variables is **covariance**, that is computed like this: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]. We compute the deviation of both variables from their mean values, and then product of those deviations. If both variables deviate together, the product would always be a positive value, that would add up to positive covariance. If both variables deviate out-of-sync (i.e. one falls below average when another one rises above average), we will always get negative numbers, that will add up to negative covariance. If the deviations are not dependent, they will add up to roughly zero. + +The absolute value of covariance does not tell us much on how large the correlation is, because it depends on the magnitude of actual values. To normalize it, we can divide covariance by standard deviation of both variables, to get **correlation**. The good thing is that correlation is always in the range of [-1,1], where 1 indicates strong positive correlation between values, -1 - strong negative correlation, and 0 - no correlation at all (variables are independent). + +**Example**: We can compute correlation between weights and heights of baseball players from the dataset mentioned above: +```python +print(np.corrcoef(weights,heights)) +``` +As a result, we get **correlation matrix** like this one: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> Correlation matrix C can be computed for any number of input sequences S1, ..., Sn. The value of Cij is the correlation between Si and Sj, and diagonal elements are always 1 (which is also self-correlation of Si). + +In our case, the value 0.53 indicates that there is some correlation between weight and height of a person. We can also make the scatter plot of one value against the other to see the relationship visually: + +![Relationship between weight and height](images/weight-height-relationship.png) + +> More examples of correlation and covariance can be found in [accompanying notebook](notebook.ipynb). + +## Conclusion + +In this section, we have learnt: + +* basic statistical properties of data, such as mean, variance, mode and quartiles +* different distributions of random variables, including normal distribution +* how to find correlation between different properties +* how to use sound apparatus of math and statistics in order to prove some hypotheses, +* how to compute confidence intervals for random variable given data sample + +While this is definitely not exhaustive list of topics that exist within probability and statistics, it should be enough to give you a good start into this course. + +## 🚀 Challenge + +Use the sample code in the notebook to test other hypothesis that: +1. First basemen and older that second basemen +2. First basemen and taller than third basemen +3. Shortstops are taller than second basemen + +## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/7) + +## Review & Self Study + +Probability and statistics is such a broad topic that it deserves its own course. If you are interested to go deeper into theory, you may want to continue reading some of the following books: + +1. [Carlos Fernanderz-Granda](https://cims.nyu.edu/~cfgranda/) from New York University has great lecture notes [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (available online) +1. [Peter and Andrew Bruce. Practical Statistics for Data Scientists.](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[sample code in R](https://github.com/andrewgbruce/statistics-for-data-scientists)]. +1. [James D. Miller. Statistics for Data Science](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[sample code in R](https://github.com/PacktPublishing/Statistics-for-Data-Science)] + +## Assignment + +[Small Diabetes Study](assignment.md) + +## Credits + +This lesson has been authored with ♥️ by [Dmitry Soshnikov](http://soshnikov.com) From 6392d8037da8d9162650200655618121a1cfd57a Mon Sep 17 00:00:00 2001 From: Keshav Sharma <61562452+keshav340@users.noreply.github.com> Date: Sat, 9 Oct 2021 05:53:58 -0700 Subject: [PATCH 08/30] Bonus lesson added --- 2-Working-With-Data/07-python/bonus-lesson.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 2-Working-With-Data/07-python/bonus-lesson.ipynb diff --git a/2-Working-With-Data/07-python/bonus-lesson.ipynb b/2-Working-With-Data/07-python/bonus-lesson.ipynb new file mode 100644 index 00000000..44dcbb39 --- /dev/null +++ b/2-Working-With-Data/07-python/bonus-lesson.ipynb @@ -0,0 +1 @@ +{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.0.5"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This R environment comes with many helpful analytics packages installed\n# It is defined by the kaggle/rstats Docker image: https://github.com/kaggle/docker-rstats\n# For example, here's a helpful package to load\n\nlibrary(tidyverse) # metapackage of all tidyverse packages\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nlist.files(path = \"../input\")\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"051d70d956493feee0c6d64651c6a088724dca2a","_execution_state":"idle","execution":{"iopub.status.busy":"2021-10-08T18:11:24.952103Z","iopub.execute_input":"2021-10-08T18:11:24.954562Z","iopub.status.idle":"2021-10-08T18:11:26.309552Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(zoo)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(ggfortify)\nlibrary(dplyr)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:15:22.966831Z","iopub.execute_input":"2021-10-09T12:15:22.968941Z","iopub.status.idle":"2021-10-09T12:15:23.546202Z"},"trusted":true},"execution_count":1,"outputs":[]},{"cell_type":"markdown","source":"## Series","metadata":{}},{"cell_type":"markdown","source":"### Series is like a list or 1D-array, but with index.It is generally used to represent data associated with time.","metadata":{}},{"cell_type":"code","source":"stock_prices = c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)\nstock_prices_glennmark = ts(stock_prices,start = c(2020,1,1),frequency = 12)\nstock_prices_glennmark\nplot(stock_prices_glennmark)\n","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:15:54.612622Z","iopub.execute_input":"2021-10-09T12:15:54.735899Z","iopub.status.idle":"2021-10-09T12:15:55.008804Z"},"trusted":true},"execution_count":3,"outputs":[]},{"cell_type":"code","source":"# CREATING A TIME SERIES\nrandomData<- rnorm(100)\nmonth <- ts(randomData,start=c(2020,1),frequency=12)\nplot(month)\n## it bit much longer a it is 100/4 takes much longer year","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:03.558553Z","iopub.execute_input":"2021-10-09T12:16:03.560254Z","iopub.status.idle":"2021-10-09T12:16:03.679285Z"},"trusted":true},"execution_count":4,"outputs":[]},{"cell_type":"markdown","source":"**DataFrame**\n#### It is a two dimensional data structure in which data is inserted in tabular form.","metadata":{}},{"cell_type":"code","source":"STOCK_PRICE <- data.frame(\nUSD=c(1.02,1.085,2.05,3.45,4.05,5.32,3.45,4.65,6.65,9.23,10.25,12.69),\nEURO = c(0.85,1.02,1.85,3.02,3.35,4.35,2.65,3.95,5.55,8.90,9.80,11.50))\nSTOCK_PRICES <- ts(STOCK_PRICE,start = c(2020,1,1),frequency = 12)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:24:50.750390Z","iopub.execute_input":"2021-10-09T12:24:50.752297Z","iopub.status.idle":"2021-10-09T12:24:50.767609Z"},"trusted":true},"execution_count":14,"outputs":[]},{"cell_type":"code","source":"STOCK_PRICES","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:24:53.233062Z","iopub.execute_input":"2021-10-09T12:24:53.234839Z","iopub.status.idle":"2021-10-09T12:24:53.260478Z"},"trusted":true},"execution_count":15,"outputs":[]},{"cell_type":"markdown","source":"## Reading Data into R","metadata":{}},{"cell_type":"markdown","source":"### 1. Read a CSV File into R","metadata":{}},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"code","source":"dataset <- read.table(file=\" \",header = TRUE, sep = \",\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Data Manipluation","metadata":{}},{"cell_type":"code","source":"dim(STOCK_PRICES )","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:21.200787Z","iopub.execute_input":"2021-10-09T12:16:21.202859Z","iopub.status.idle":"2021-10-09T12:16:21.224888Z"},"trusted":true},"execution_count":8,"outputs":[]},{"cell_type":"code","source":"head(STOCK_PRICES )","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:26.089604Z","iopub.execute_input":"2021-10-09T12:16:26.091545Z","iopub.status.idle":"2021-10-09T12:16:26.114797Z"},"trusted":true},"execution_count":9,"outputs":[]},{"cell_type":"code","source":"summary(STOCK_PRICES )","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:28.433758Z","iopub.execute_input":"2021-10-09T12:16:28.435883Z","iopub.status.idle":"2021-10-09T12:16:28.457663Z"},"trusted":true},"execution_count":10,"outputs":[]},{"cell_type":"markdown","source":"#### We ae slicing to find subsets columns of 5-7 of datasets","metadata":{}},{"cell_type":"code","source":"STOCK_PRICES [5,]\n# series","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:35.848118Z","iopub.execute_input":"2021-10-09T12:16:35.850327Z","iopub.status.idle":"2021-10-09T12:16:35.871805Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"code","source":"STOCK_PRICES [3:8,]","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:50.004019Z","iopub.execute_input":"2021-10-09T12:16:50.006116Z","iopub.status.idle":"2021-10-09T12:16:50.034007Z"},"trusted":true},"execution_count":12,"outputs":[]},{"cell_type":"code","source":"slice(STOCK_PRICE ,3:8)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:25:09.777288Z","iopub.execute_input":"2021-10-09T12:25:09.778989Z","iopub.status.idle":"2021-10-09T12:25:09.806709Z"},"trusted":true},"execution_count":16,"outputs":[]},{"cell_type":"markdown","source":"### Pip OPERATOR","metadata":{}},{"cell_type":"code","source":"STOCK_PRICE %>% slice(3:5)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:25:25.256136Z","iopub.execute_input":"2021-10-09T12:25:25.257863Z","iopub.status.idle":"2021-10-09T12:25:25.278594Z"},"trusted":true},"execution_count":18,"outputs":[]},{"cell_type":"markdown","source":"### SLICE SUBSETS the first n rows of dataframe and slice tail subsets the last n rows of dataframe","metadata":{}},{"cell_type":"code","source":"slice_head(STOCK_PRICE,n=2)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:25:55.079932Z","iopub.execute_input":"2021-10-09T12:25:55.081670Z","iopub.status.idle":"2021-10-09T12:25:55.103342Z"},"trusted":true},"execution_count":19,"outputs":[]},{"cell_type":"code","source":"slice_tail(STOCK_PRICE,n=2)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:26:04.997678Z","iopub.execute_input":"2021-10-09T12:26:04.999435Z","iopub.status.idle":"2021-10-09T12:26:05.021799Z"},"trusted":true},"execution_count":20,"outputs":[]},{"cell_type":"markdown","source":"### Slice_max subsets the n rows of a dataset with n largest value with respect to a variable","metadata":{}},{"cell_type":"code","source":"slice_max(STOCK_PRICE,EURO, n=3)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:26:29.905938Z","iopub.execute_input":"2021-10-09T12:26:29.907674Z","iopub.status.idle":"2021-10-09T12:26:29.934518Z"},"trusted":true},"execution_count":21,"outputs":[]},{"cell_type":"code","source":"slice_sample(STOCK_PRICE,n=5)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:26:42.047503Z","iopub.execute_input":"2021-10-09T12:26:42.049113Z","iopub.status.idle":"2021-10-09T12:26:42.071494Z"},"trusted":true},"execution_count":22,"outputs":[]},{"cell_type":"markdown","source":"## Filtering","metadata":{}},{"cell_type":"markdown","source":"### filters out the rows of dataframe which doesn't meet criteria","metadata":{}},{"cell_type":"code","source":"STOCK_PRICE[STOCK_PRICE$EURO>3.35,]","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:29:42.107479Z","iopub.execute_input":"2021-10-09T12:29:42.109116Z","iopub.status.idle":"2021-10-09T12:29:42.131224Z"},"trusted":true},"execution_count":30,"outputs":[]},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"markdown","source":"## Grouping ","metadata":{}},{"cell_type":"markdown","source":"### group_by function group rows of data and frame with respect to one or more variabes","metadata":{}},{"cell_type":"code","source":"library(dplyr)","metadata":{"execution":{"iopub.status.busy":"2021-10-08T13:13:57.808888Z","iopub.execute_input":"2021-10-08T13:13:57.810559Z","iopub.status.idle":"2021-10-08T13:13:57.843966Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df1 <- group_by(STOCK_PRICE,EURO)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:36:27.270590Z","iopub.execute_input":"2021-10-09T12:36:27.272456Z","iopub.status.idle":"2021-10-09T12:36:27.298281Z"},"trusted":true},"execution_count":40,"outputs":[]},{"cell_type":"code","source":"summarise(df1,mymean =mean(EURO))","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:36:38.887295Z","iopub.execute_input":"2021-10-09T12:36:38.889081Z","iopub.status.idle":"2021-10-09T12:36:38.919223Z"},"trusted":true},"execution_count":41,"outputs":[]},{"cell_type":"code","source":"df2<-group_by(df1,USD>3.2)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:36:53.022367Z","iopub.execute_input":"2021-10-09T12:36:53.023993Z","iopub.status.idle":"2021-10-09T12:36:53.051015Z"},"trusted":true},"execution_count":42,"outputs":[]},{"cell_type":"code","source":"summarise(df2,mymean = mean(USD))","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:05.348959Z","iopub.execute_input":"2021-10-09T12:37:05.350547Z","iopub.status.idle":"2021-10-09T12:37:05.374010Z"},"trusted":true},"execution_count":44,"outputs":[]},{"cell_type":"markdown","source":"## SELECT","metadata":{}},{"cell_type":"code","source":"df<-select(STOCK_PRICE,EURO,USD)\ndf","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:45.562234Z","iopub.execute_input":"2021-10-09T12:37:45.563814Z","iopub.status.idle":"2021-10-09T12:37:45.591553Z"},"trusted":true},"execution_count":47,"outputs":[]},{"cell_type":"code","source":"df<- select(df,-EURO)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:55.423706Z","iopub.execute_input":"2021-10-09T12:37:55.425323Z","iopub.status.idle":"2021-10-09T12:37:55.440506Z"},"trusted":true},"execution_count":48,"outputs":[]},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"code","source":"df","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:58.655523Z","iopub.execute_input":"2021-10-09T12:37:58.657351Z","iopub.status.idle":"2021-10-09T12:37:58.687523Z"},"trusted":true},"execution_count":49,"outputs":[]},{"cell_type":"markdown","source":"## Arrange","metadata":{}},{"cell_type":"code","source":"df <- arrange(STOCK_PRICE, desc(USD))","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:19.525371Z","iopub.execute_input":"2021-10-09T12:38:19.526944Z","iopub.status.idle":"2021-10-09T12:38:19.545423Z"},"trusted":true},"execution_count":51,"outputs":[]},{"cell_type":"code","source":"df","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:22.301574Z","iopub.execute_input":"2021-10-09T12:38:22.303359Z","iopub.status.idle":"2021-10-09T12:38:22.326992Z"},"trusted":true},"execution_count":52,"outputs":[]},{"cell_type":"code","source":"df <- arrange(STOCK_PRICE, desc(USD),EURO)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:45.428273Z","iopub.execute_input":"2021-10-09T12:38:45.429970Z","iopub.status.idle":"2021-10-09T12:38:45.446438Z"},"trusted":true},"execution_count":54,"outputs":[]},{"cell_type":"code","source":"df","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:48.362531Z","iopub.execute_input":"2021-10-09T12:38:48.364239Z","iopub.status.idle":"2021-10-09T12:38:48.390254Z"},"trusted":true},"execution_count":55,"outputs":[]},{"cell_type":"code","source":"rename(STOCK_PRICE, DOLLAR = USD)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:39:28.495960Z","iopub.execute_input":"2021-10-09T12:39:28.497625Z","iopub.status.idle":"2021-10-09T12:39:28.525934Z"},"trusted":true},"execution_count":57,"outputs":[]},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]} \ No newline at end of file From f4567ed623f74e68bf518d44c8f11af4fb098fe2 Mon Sep 17 00:00:00 2001 From: Keshav Sharma <61562452+keshav340@users.noreply.github.com> Date: Sat, 9 Oct 2021 20:21:44 -0700 Subject: [PATCH 09/30] Delete bonus-lesson.ipynb --- 2-Working-With-Data/07-python/bonus-lesson.ipynb | 1 - 1 file changed, 1 deletion(-) delete mode 100644 2-Working-With-Data/07-python/bonus-lesson.ipynb diff --git a/2-Working-With-Data/07-python/bonus-lesson.ipynb b/2-Working-With-Data/07-python/bonus-lesson.ipynb deleted file mode 100644 index 44dcbb39..00000000 --- a/2-Working-With-Data/07-python/bonus-lesson.ipynb +++ /dev/null @@ -1 +0,0 @@ -{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.0.5"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This R environment comes with many helpful analytics packages installed\n# It is defined by the kaggle/rstats Docker image: https://github.com/kaggle/docker-rstats\n# For example, here's a helpful package to load\n\nlibrary(tidyverse) # metapackage of all tidyverse packages\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nlist.files(path = \"../input\")\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"051d70d956493feee0c6d64651c6a088724dca2a","_execution_state":"idle","execution":{"iopub.status.busy":"2021-10-08T18:11:24.952103Z","iopub.execute_input":"2021-10-08T18:11:24.954562Z","iopub.status.idle":"2021-10-08T18:11:26.309552Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(zoo)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(ggfortify)\nlibrary(dplyr)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:15:22.966831Z","iopub.execute_input":"2021-10-09T12:15:22.968941Z","iopub.status.idle":"2021-10-09T12:15:23.546202Z"},"trusted":true},"execution_count":1,"outputs":[]},{"cell_type":"markdown","source":"## Series","metadata":{}},{"cell_type":"markdown","source":"### Series is like a list or 1D-array, but with index.It is generally used to represent data associated with time.","metadata":{}},{"cell_type":"code","source":"stock_prices = c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)\nstock_prices_glennmark = ts(stock_prices,start = c(2020,1,1),frequency = 12)\nstock_prices_glennmark\nplot(stock_prices_glennmark)\n","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:15:54.612622Z","iopub.execute_input":"2021-10-09T12:15:54.735899Z","iopub.status.idle":"2021-10-09T12:15:55.008804Z"},"trusted":true},"execution_count":3,"outputs":[]},{"cell_type":"code","source":"# CREATING A TIME SERIES\nrandomData<- rnorm(100)\nmonth <- ts(randomData,start=c(2020,1),frequency=12)\nplot(month)\n## it bit much longer a it is 100/4 takes much longer year","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:03.558553Z","iopub.execute_input":"2021-10-09T12:16:03.560254Z","iopub.status.idle":"2021-10-09T12:16:03.679285Z"},"trusted":true},"execution_count":4,"outputs":[]},{"cell_type":"markdown","source":"**DataFrame**\n#### It is a two dimensional data structure in which data is inserted in tabular form.","metadata":{}},{"cell_type":"code","source":"STOCK_PRICE <- data.frame(\nUSD=c(1.02,1.085,2.05,3.45,4.05,5.32,3.45,4.65,6.65,9.23,10.25,12.69),\nEURO = c(0.85,1.02,1.85,3.02,3.35,4.35,2.65,3.95,5.55,8.90,9.80,11.50))\nSTOCK_PRICES <- ts(STOCK_PRICE,start = c(2020,1,1),frequency = 12)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:24:50.750390Z","iopub.execute_input":"2021-10-09T12:24:50.752297Z","iopub.status.idle":"2021-10-09T12:24:50.767609Z"},"trusted":true},"execution_count":14,"outputs":[]},{"cell_type":"code","source":"STOCK_PRICES","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:24:53.233062Z","iopub.execute_input":"2021-10-09T12:24:53.234839Z","iopub.status.idle":"2021-10-09T12:24:53.260478Z"},"trusted":true},"execution_count":15,"outputs":[]},{"cell_type":"markdown","source":"## Reading Data into R","metadata":{}},{"cell_type":"markdown","source":"### 1. Read a CSV File into R","metadata":{}},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"code","source":"dataset <- read.table(file=\" \",header = TRUE, sep = \",\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Data Manipluation","metadata":{}},{"cell_type":"code","source":"dim(STOCK_PRICES )","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:21.200787Z","iopub.execute_input":"2021-10-09T12:16:21.202859Z","iopub.status.idle":"2021-10-09T12:16:21.224888Z"},"trusted":true},"execution_count":8,"outputs":[]},{"cell_type":"code","source":"head(STOCK_PRICES )","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:26.089604Z","iopub.execute_input":"2021-10-09T12:16:26.091545Z","iopub.status.idle":"2021-10-09T12:16:26.114797Z"},"trusted":true},"execution_count":9,"outputs":[]},{"cell_type":"code","source":"summary(STOCK_PRICES )","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:28.433758Z","iopub.execute_input":"2021-10-09T12:16:28.435883Z","iopub.status.idle":"2021-10-09T12:16:28.457663Z"},"trusted":true},"execution_count":10,"outputs":[]},{"cell_type":"markdown","source":"#### We ae slicing to find subsets columns of 5-7 of datasets","metadata":{}},{"cell_type":"code","source":"STOCK_PRICES [5,]\n# series","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:35.848118Z","iopub.execute_input":"2021-10-09T12:16:35.850327Z","iopub.status.idle":"2021-10-09T12:16:35.871805Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"code","source":"STOCK_PRICES [3:8,]","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:16:50.004019Z","iopub.execute_input":"2021-10-09T12:16:50.006116Z","iopub.status.idle":"2021-10-09T12:16:50.034007Z"},"trusted":true},"execution_count":12,"outputs":[]},{"cell_type":"code","source":"slice(STOCK_PRICE ,3:8)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:25:09.777288Z","iopub.execute_input":"2021-10-09T12:25:09.778989Z","iopub.status.idle":"2021-10-09T12:25:09.806709Z"},"trusted":true},"execution_count":16,"outputs":[]},{"cell_type":"markdown","source":"### Pip OPERATOR","metadata":{}},{"cell_type":"code","source":"STOCK_PRICE %>% slice(3:5)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:25:25.256136Z","iopub.execute_input":"2021-10-09T12:25:25.257863Z","iopub.status.idle":"2021-10-09T12:25:25.278594Z"},"trusted":true},"execution_count":18,"outputs":[]},{"cell_type":"markdown","source":"### SLICE SUBSETS the first n rows of dataframe and slice tail subsets the last n rows of dataframe","metadata":{}},{"cell_type":"code","source":"slice_head(STOCK_PRICE,n=2)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:25:55.079932Z","iopub.execute_input":"2021-10-09T12:25:55.081670Z","iopub.status.idle":"2021-10-09T12:25:55.103342Z"},"trusted":true},"execution_count":19,"outputs":[]},{"cell_type":"code","source":"slice_tail(STOCK_PRICE,n=2)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:26:04.997678Z","iopub.execute_input":"2021-10-09T12:26:04.999435Z","iopub.status.idle":"2021-10-09T12:26:05.021799Z"},"trusted":true},"execution_count":20,"outputs":[]},{"cell_type":"markdown","source":"### Slice_max subsets the n rows of a dataset with n largest value with respect to a variable","metadata":{}},{"cell_type":"code","source":"slice_max(STOCK_PRICE,EURO, n=3)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:26:29.905938Z","iopub.execute_input":"2021-10-09T12:26:29.907674Z","iopub.status.idle":"2021-10-09T12:26:29.934518Z"},"trusted":true},"execution_count":21,"outputs":[]},{"cell_type":"code","source":"slice_sample(STOCK_PRICE,n=5)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:26:42.047503Z","iopub.execute_input":"2021-10-09T12:26:42.049113Z","iopub.status.idle":"2021-10-09T12:26:42.071494Z"},"trusted":true},"execution_count":22,"outputs":[]},{"cell_type":"markdown","source":"## Filtering","metadata":{}},{"cell_type":"markdown","source":"### filters out the rows of dataframe which doesn't meet criteria","metadata":{}},{"cell_type":"code","source":"STOCK_PRICE[STOCK_PRICE$EURO>3.35,]","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:29:42.107479Z","iopub.execute_input":"2021-10-09T12:29:42.109116Z","iopub.status.idle":"2021-10-09T12:29:42.131224Z"},"trusted":true},"execution_count":30,"outputs":[]},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"markdown","source":"## Grouping ","metadata":{}},{"cell_type":"markdown","source":"### group_by function group rows of data and frame with respect to one or more variabes","metadata":{}},{"cell_type":"code","source":"library(dplyr)","metadata":{"execution":{"iopub.status.busy":"2021-10-08T13:13:57.808888Z","iopub.execute_input":"2021-10-08T13:13:57.810559Z","iopub.status.idle":"2021-10-08T13:13:57.843966Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df1 <- group_by(STOCK_PRICE,EURO)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:36:27.270590Z","iopub.execute_input":"2021-10-09T12:36:27.272456Z","iopub.status.idle":"2021-10-09T12:36:27.298281Z"},"trusted":true},"execution_count":40,"outputs":[]},{"cell_type":"code","source":"summarise(df1,mymean =mean(EURO))","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:36:38.887295Z","iopub.execute_input":"2021-10-09T12:36:38.889081Z","iopub.status.idle":"2021-10-09T12:36:38.919223Z"},"trusted":true},"execution_count":41,"outputs":[]},{"cell_type":"code","source":"df2<-group_by(df1,USD>3.2)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:36:53.022367Z","iopub.execute_input":"2021-10-09T12:36:53.023993Z","iopub.status.idle":"2021-10-09T12:36:53.051015Z"},"trusted":true},"execution_count":42,"outputs":[]},{"cell_type":"code","source":"summarise(df2,mymean = mean(USD))","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:05.348959Z","iopub.execute_input":"2021-10-09T12:37:05.350547Z","iopub.status.idle":"2021-10-09T12:37:05.374010Z"},"trusted":true},"execution_count":44,"outputs":[]},{"cell_type":"markdown","source":"## SELECT","metadata":{}},{"cell_type":"code","source":"df<-select(STOCK_PRICE,EURO,USD)\ndf","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:45.562234Z","iopub.execute_input":"2021-10-09T12:37:45.563814Z","iopub.status.idle":"2021-10-09T12:37:45.591553Z"},"trusted":true},"execution_count":47,"outputs":[]},{"cell_type":"code","source":"df<- select(df,-EURO)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:55.423706Z","iopub.execute_input":"2021-10-09T12:37:55.425323Z","iopub.status.idle":"2021-10-09T12:37:55.440506Z"},"trusted":true},"execution_count":48,"outputs":[]},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"code","source":"df","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:37:58.655523Z","iopub.execute_input":"2021-10-09T12:37:58.657351Z","iopub.status.idle":"2021-10-09T12:37:58.687523Z"},"trusted":true},"execution_count":49,"outputs":[]},{"cell_type":"markdown","source":"## Arrange","metadata":{}},{"cell_type":"code","source":"df <- arrange(STOCK_PRICE, desc(USD))","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:19.525371Z","iopub.execute_input":"2021-10-09T12:38:19.526944Z","iopub.status.idle":"2021-10-09T12:38:19.545423Z"},"trusted":true},"execution_count":51,"outputs":[]},{"cell_type":"code","source":"df","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:22.301574Z","iopub.execute_input":"2021-10-09T12:38:22.303359Z","iopub.status.idle":"2021-10-09T12:38:22.326992Z"},"trusted":true},"execution_count":52,"outputs":[]},{"cell_type":"code","source":"df <- arrange(STOCK_PRICE, desc(USD),EURO)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:45.428273Z","iopub.execute_input":"2021-10-09T12:38:45.429970Z","iopub.status.idle":"2021-10-09T12:38:45.446438Z"},"trusted":true},"execution_count":54,"outputs":[]},{"cell_type":"code","source":"df","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:38:48.362531Z","iopub.execute_input":"2021-10-09T12:38:48.364239Z","iopub.status.idle":"2021-10-09T12:38:48.390254Z"},"trusted":true},"execution_count":55,"outputs":[]},{"cell_type":"code","source":"rename(STOCK_PRICE, DOLLAR = USD)","metadata":{"execution":{"iopub.status.busy":"2021-10-09T12:39:28.495960Z","iopub.execute_input":"2021-10-09T12:39:28.497625Z","iopub.status.idle":"2021-10-09T12:39:28.525934Z"},"trusted":true},"execution_count":57,"outputs":[]},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]} \ No newline at end of file From 8028c0f6717b28b50625700323acafb195145473 Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Sat, 9 Oct 2021 20:24:19 -0700 Subject: [PATCH 10/30] Create pandas.ipynb --- 2-Working-With-Data/R/pandas.ipynb | 936 +++++++++++++++++++++++++++++ 1 file changed, 936 insertions(+) create mode 100644 2-Working-With-Data/R/pandas.ipynb diff --git a/2-Working-With-Data/R/pandas.ipynb b/2-Working-With-Data/R/pandas.ipynb new file mode 100644 index 00000000..323f0133 --- /dev/null +++ b/2-Working-With-Data/R/pandas.ipynb @@ -0,0 +1,936 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 73, + "id": "c105e391", + "metadata": {}, + "outputs": [], + "source": [ + "library(dplyr)\n", + "library(tidyverse)" + ] + }, + { + "cell_type": "markdown", + "id": "00c41f19", + "metadata": {}, + "source": [ + "## Series" + ] + }, + { + "cell_type": "markdown", + "id": "d3490356", + "metadata": {}, + "source": [ + "a<- 1:9" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "2ef3725d", + "metadata": {}, + "outputs": [], + "source": [ + "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "14e6152d", + "metadata": {}, + "outputs": [], + "source": [ + "a1 = length(a)\n", + "b1 = length(b)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "432b0c2b", + "metadata": {}, + "outputs": [], + "source": [ + "a = data.frame(a,row.names = c(1:a1))" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "id": "adb4391f", + "metadata": {}, + "outputs": [], + "source": [ + "b = data.frame(b,row.names = c(1:b1))" + ] + }, + { + "cell_type": "markdown", + "id": "9d27aa12", + "metadata": {}, + "source": [ + "idx<- seq.Date(from = as.Date(\"20-01-01\"), to = as.Date(\"2001-03-31\"), by = \"day\",)\n", + "print(length(idx))\n" + ] + }, + { + "cell_type": "markdown", + "id": "ee4be842", + "metadata": {}, + "source": [ + "## DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "id": "a8585654", + "metadata": {}, + "outputs": [], + "source": [ + "a = data.frame(a,row.names = c(1:a1))" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "id": "2b8c18b3", + "metadata": {}, + "outputs": [], + "source": [ + "b = data.frame(b,row.names = c(1:b1))" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "id": "60b643d5", + "metadata": {}, + "outputs": [ + { + "ename": "ERROR", + "evalue": "Error in bar.plot(data): could not find function \"bar.plot\"\n", + "output_type": "error", + "traceback": [ + "Error in bar.plot(data): could not find function \"bar.plot\"\nTraceback:\n" + ] + } + ], + "source": [ + "bar.plot(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "113578b5", + "metadata": {}, + "outputs": [], + "source": [ + "df <- data.frame(a,b)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "ef1dff63", + "metadata": {}, + "outputs": [], + "source": [ + "df = df %>% \n", + " rename(\n", + " A = a,\n", + " B = b\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "1d80bf43", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" + ], + "text/latex": [ + "A data.frame: 9 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like \\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\t5 & 5 & Python\\\\\n", + "\t6 & 6 & and \\\\\n", + "\t7 & 7 & Pandas\\\\\n", + "\t8 & 8 & very \\\\\n", + "\t9 & 9 & much \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "| 5 | 5 | Python |\n", + "| 6 | 6 | and |\n", + "| 7 | 7 | Pandas |\n", + "| 8 | 8 | very |\n", + "| 9 | 9 | much |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like \n", + "3 3 to \n", + "4 4 use \n", + "5 5 Python\n", + "6 6 and \n", + "7 7 Pandas\n", + "8 8 very \n", + "9 9 much " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "831630d7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column A (series):\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" + ], + "text/latex": [ + "A data.frame: 9 × 1\n", + "\\begin{tabular}{r|l}\n", + " & A\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t1 & 1\\\\\n", + "\t2 & 2\\\\\n", + "\t3 & 3\\\\\n", + "\t4 & 4\\\\\n", + "\t5 & 5\\\\\n", + "\t6 & 6\\\\\n", + "\t7 & 7\\\\\n", + "\t8 & 8\\\\\n", + "\t9 & 9\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 1\n", + "\n", + "| | A <int> |\n", + "|---|---|\n", + "| 1 | 1 |\n", + "| 2 | 2 |\n", + "| 3 | 3 |\n", + "| 4 | 4 |\n", + "| 5 | 5 |\n", + "| 6 | 6 |\n", + "| 7 | 7 |\n", + "| 8 | 8 |\n", + "| 9 | 9 |\n", + "\n" + ], + "text/plain": [ + " A\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 4\n", + "5 5\n", + "6 6\n", + "7 7\n", + "8 8\n", + "9 9" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cat(\"Column A (series):\\n\")\n", + "select(df,'A')" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "055bc484", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" + ], + "text/latex": [ + "A data.frame: 4 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like\\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 4 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like\n", + "3 3 to \n", + "4 4 use " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A<5,]" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "id": "05c2c45a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\n", + "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" + ], + "text/latex": [ + "A data.frame: 1 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t6 & 6 & and\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 1 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 6 | 6 | and |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "6 6 and" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A>5 & df$A<7,]" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "id": "ac8a234f", + "metadata": {}, + "outputs": [], + "source": [ + "df$DivA <- df$A - mean(df$A)" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "fb7ee6bd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" + ], + "text/latex": [ + "A data.frame: 9 × 3\n", + "\\begin{tabular}{r|lll}\n", + " & A & B & DivA\\\\\n", + " & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4\\\\\n", + "\t2 & 2 & like & -3\\\\\n", + "\t3 & 3 & to & -2\\\\\n", + "\t4 & 4 & use & -1\\\\\n", + "\t5 & 5 & Python & 0\\\\\n", + "\t6 & 6 & and & 1\\\\\n", + "\t7 & 7 & Pandas & 2\\\\\n", + "\t8 & 8 & very & 3\\\\\n", + "\t9 & 9 & much & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 3\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> |\n", + "|---|---|---|---|\n", + "| 1 | 1 | I | -4 |\n", + "| 2 | 2 | like | -3 |\n", + "| 3 | 3 | to | -2 |\n", + "| 4 | 4 | use | -1 |\n", + "| 5 | 5 | Python | 0 |\n", + "| 6 | 6 | and | 1 |\n", + "| 7 | 7 | Pandas | 2 |\n", + "| 8 | 8 | very | 3 |\n", + "| 9 | 9 | much | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA\n", + "1 1 I -4 \n", + "2 2 like -3 \n", + "3 3 to -2 \n", + "4 4 use -1 \n", + "5 5 Python 0 \n", + "6 6 and 1 \n", + "7 7 Pandas 2 \n", + "8 8 very 3 \n", + "9 9 much 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "62e9c8dd", + "metadata": {}, + "outputs": [], + "source": [ + "df$LenB <- str_length(df$B)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "849c33cc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" + ], + "text/latex": [ + "A data.frame: 9 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\t7 & 7 & Pandas & 2 & 6\\\\\n", + "\t8 & 8 & very & 3 & 4\\\\\n", + "\t9 & 9 & much & 4 & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "| 7 | 7 | Pandas | 2 | 6 |\n", + "| 8 | 8 | very | 3 | 4 |\n", + "| 9 | 9 | much | 4 | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 \n", + "7 7 Pandas 2 6 \n", + "8 8 very 3 4 \n", + "9 9 much 4 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "id": "0a65495d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" + ], + "text/latex": [ + "A data.frame: 5 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 5 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[0:5,]" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "ccebdda2", + "metadata": {}, + "outputs": [], + "source": [ + " df1 = group_by(df,LenB)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "f2dcb719", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 2
LenBmymean
<int><dbl>
11
22
33
44
66
\n" + ], + "text/latex": [ + "A tibble: 5 × 2\n", + "\\begin{tabular}{ll}\n", + " LenB & mymean\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t 1 & 1\\\\\n", + "\t 2 & 2\\\\\n", + "\t 3 & 3\\\\\n", + "\t 4 & 4\\\\\n", + "\t 6 & 6\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 2\n", + "\n", + "| LenB <int> | mymean <dbl> |\n", + "|---|---|\n", + "| 1 | 1 |\n", + "| 2 | 2 |\n", + "| 3 | 3 |\n", + "| 4 | 4 |\n", + "| 6 | 6 |\n", + "\n" + ], + "text/plain": [ + " LenB mymean\n", + "1 1 1 \n", + "2 2 2 \n", + "3 3 3 \n", + "4 4 4 \n", + "5 6 6 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "summarise(df1,mymean =mean(LenB))" + ] + }, + { + "cell_type": "markdown", + "id": "d8eb00bc", + "metadata": {}, + "source": [ + "## Printing and Plotting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b96b6be0", + "metadata": {}, + "outputs": [], + "source": [ + "dataset = read.csv(\"file name\")" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "3b1a4735", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" + ], + "text/latex": [ + "A data.frame: 6 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 6 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "head(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "id": "0af4e0e5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVuklEQVR4nO3djVYbuxWAUZn/ULDf/22LDYm5CQbbc0Y6kvZeC4c2C0Yj6cNg\n0absgMVK6wHACIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEASqEVKAzV+zy+HAaXAIiCQkCCAkCCAkCCAkC\nCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAnO9c3/olxIcJ5DRadS\nEhKcp3x6PPGXV3y+VQmJdMpff379t1d8whUJiXTKp7ev//aKT7gyIZFO+diXQoIlyjcdCQnO\n5FU7WGxfkHMkWOanLSkk+NmPO1JI8KOfN6SQ4Cdn7EchwQ/O2Y5Cgu+dtRuFBN86bzMKCb5x\n7r9pKSQ47eydKCQ46fyNKCQ45YJ9KCQ44ZJtKCT42kW7UEjwpcs2oZDgKxfuQSHBv849Pjp+\nwBXXuPxDEl4CTrt8AwoJ/lanCiExtmu2n5Dgv67afUKC/7hu8wkJPrty7wkJPrl26wkJ/rj4\n+Oj4kVU+JOEl4B8L9p2Q4MOSbSckeLdo1wkJDpZtOiHB3sI9JyTYLd9yQoIFL3v/+QxVPiTh\nJeCPgP0mJKYXsd2ExOxCdpuQmFzMZhMScwvaa0JialFbTUjMLGynCYl5LT8+On6qKh+S8BIQ\nuc2ExKxCd5mQmFTsJhMScwreY0JiStFbTEjMKHyHCYkJxW8wITGdwOOj4+es8iEJL8G0Vtld\nQmIy62wuITGXlfaWkJjKWltLSMxktZ0lJCay3sYSEvNYcV8JiVmscXx0/ORVPiThJZjNuptK\nSMxh5T0lJKaw9pYSEjNYfUcJiQmsv6GExPhybtmco4JTamynmiG93pfN4273dFM2DytdAj4p\n+6OjVY+Pjpeq8iEH283bfZWnx/1juV3lEnB0KKhORlVDeihvz0MPm3K/3W0P78dfAo4Ou2jA\nkDYfN7Y9/LFZ4xLwR/l4qLOZKoZUPn+F+PcLRfnsykvAH+XTW52rrf8hB5tPIW09I7GycnxS\nqnO1Ch9y8PtnpIftx/vxl4CjUrEjr9oxrFFftXOOREXvR0jVdpLfbGBItbeQkBhR9R0kJAZU\nfwMJifE02D9CYjgtto+QGE2T3SMkBtNm8wiJsTTaO0JiJM1+31lIDKTdxhES42i4b4TEMFpu\nGyExiqa7RkgMou2mERJjaLxnhMQQWm8ZITGC5jtGSPQvwf/tlJDoXobtIiR6l2K3CInO5dgs\nQqJvSfaKkOhalq0iJHqWZqcIiY7l2ShCol+J9omQ6FWCY9gjIdGpXJtESPQp2R4REl3KtkWE\nRI/S7RAh0aF8G0RI9Cfh/hAS3cm4PYREb1LuDiHRl1THsEdCoitZt4aQ6EnanSEkOpJ3YwiJ\nfiTeF0KiG5m3hZDoRepdISQ6kXtTCIk+JN8TQqIHSY9hj4REB/JvCCGRXwf7QUik18N2EBLZ\ndbEbhERyfWwGIZFbJ3tBSKTWy1YQEpl1sxOERF7pj2GPhERaPW0DIZFVV7tASCTV1yYQEjl1\ntgeEREq9bQEhkVF3O0BIJNTfBhAS+XS4/kIim46OYY+ERB5l31Cfiy8ksjg8E3X5dLQTEnkc\nVl1IkTqdTJYoHw99Lr6QSKJ8euuPkEiiHJ+UOiQksigddyQk0vCqXbhOJ5MFDkdIvWYkJJLo\nfcmFRAbdr7iQSKD/BRcS7Q2w3kKiuRGWW0i0NsRqC4nGxlhsIdHWIGstJFrq9wT2L0KioXEW\nWki0M9A6C4lmRlpmIdHKUKssJBoZa5GFRBuDrbGQaGK0JRYSLQy3wkKivmGOYY+ERHUjLq+Q\nqG3I1RUSlY25uEKirkHXVkhUNerSComahl1ZIVHRuAsrJOoZeF2FRC0DHsMeCYlKxl5UIVHH\n4GsqJKoYfUmFRA3Dr6iQqGD8BRUS65tgPYXE6mZYTiGxtilWU0isa+hj2CMhsapZllJIrGma\nlRQSK5pnIYXEeiZaRyGxmpmWUUisZapVFBIrmWsRhcQ6JltDIbGGSY5hj4TECuZbQCERb8L1\nExLhZlw+IRFtytUTEsHmXDwhEWvStRMSoWZdOiERadqVExJxpjuGPRISYWZeNiERZepVExJB\n5l40IRFj8jUTEiFmXzIhEWH6FRMSASyYkFjOegmJxSY+hj2qGdL2YfP2+HhTyu2vlS5BVWXf\nkMXaqxjS6+Zt2rdvD3u3q1yCmg7PRJ6O3lUM6b7cbd8e7l/fmrovD2tcgpoOqySkdxVDKmX7\n8fD2XV7ZrHEJKiofDxZrr2pIbw+b8uk//PXXn1x5CSoqn96o+q3dy273uH/YPyN9+0OStelA\nOT4pUTOkl7J5eNndbd5Ker4pz2tcgpqKjo5qvvz9vDl+7/a4ziWoyKt2n9Q9kP11f7Ov6O7x\ndbVLUMnhCElGv/nNBq5iif5LSFzDCv1FSFzBAv1NSFzO+vxDSFzM8vxLSFzK6nxBSFzI4nxF\nSFzEydHXhMQlrMwJQuICFuYUIXE+63KSkDibZTlNSJzLqnxDSJzJonxHSJzHmnxLSJzD8dEP\nhMQZLMhPhMTPrMePhMSPLMfPhMRPrMYZhMQPLMY5hMT3rMVZhMS3LMV5hMQ3HB+dS0icZh3O\nJiROsgznExKnWIULCIkTLMIlhMTXrMFFhMSXLMFlhMQXvOx9KSHxL/N/MSHxD9N/OSHxN7N/\nBSHxF5N/DSHxX+b+KkLiP0z9dYTEZ2b+SkLiyPHR1YTEH6b9ekLiN7O+gJD4YNKXEBLvzPki\nQuLAlC8jJPbM+EJCYmfClxMSjo8CCAmzHUBI0zPZEYQ0O3MdQkiTM9UxhDQ3Mx1ESFMz0VGE\nNDPzHEZI83J8FEhI0zLJkYQ0K3McSkiTMsWxhDQnMxxMSFMywdGCQnp52Cweyg+XII75DRcR\n0uvjTSlC6ofpjbc4pO2vt4rK7XPQeL66BFHK/ujI8dEaFob067bsvYaN599LEOVQkIzWsSSk\n5/u3hjYPL/FrY7HXcJhVIa1jQUibfUX/262xNhZ7BeXjweSuYUFIpTz8fidsOH9dgkDl0xvR\nPCNNoxyflAgX8DPS/4TUh6Kj9XjVbh5etVtR0DnSnXOk7N6PkMzsSvxmwyRM6br8rt0czOjK\n/Pb3FEzo2oQ0A/O5OiFNwHSuT0jjM5sVCGl4JrMGIY3OXFYhpLE5ga1ESEMzkbUIaWTmsRoh\n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\n+fQU0uGZyNMRGXUV0uFBSCTUUUjl40FJ5NNZSOXUX0JTnYVU6fpwoY5C+vhvdURCXYXkVTuy\n6imkj3MkyKevkCApIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEA\nIUEAIUEAIUGApCFBZ67Y5fHhNJP9XoxvmdTjSz24C2W/F+NbJvX4Ug/uQtnvxfiWST2+1IO7\nUPZ7Mb5lUo8v9eAulP1ejG+Z1ONLPbgLZb8X41sm9fhSD+5C2e/F+JZJPb7Ug7tQ9nsxvmVS\njy/14C6U/V6Mb5nU40s9uAtlvxfjWyb1+FIP7kLZ78X4lkk9vtSDu1D2ezG+ZVKPL/XgoBdC\nggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggDDhPR0UzYP29aj\n+Nb/Mk/2y30p96+tR3HS9mGTe30zr+0lHg7/iMAm8UzvtpvEk/2ce/5eN+/jy1t64rW9xEu5\nf9sDT+W+9UC+cXfNvxZSy2bzstvelYfW4zjh/jCyh8Trm3htL3H3fh+Zt+qvq/7ZnUp+HTbq\ntmxaD+SEkn59847sGokn+rXcJh7dfXlpPYRvfXxXnDb0wULaltvWQzjptrwmDumm7B43h2+P\nc3r8+NbusfVATsq7tld4Ks+th3DKY/mV+fmylLvDD/Otx3HS0/7Vhs1T62GclndtL/e6uWs9\nhFNeyl3qbzzfNunLbnuf9yv+4+FVu7TDGyqk7SbvN3Y3+xeWU4e0/xnptdy0HsgJT/tv7d5C\nz/uUlHdtL3abdRfsf5bff8+ZOqTPf+RzU/Y/vm3Thj5QSK83t4lP6xb8u/NVZD8+yB76OCE9\nJ37BroOQHg9Pma9pJ/H95e+851zDhJR3C3ySNqPDT0fb/c8gv1oP5ISHsv89u4e0v3kxTEj3\nyb/iH2Qe3furYnm/Gt0mH98oIWX/1ukg9eieb8sm79f7t2ejTe7xZV5b6IaQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQelPK613ZPB7e\nf7opN0+Nx8OBkHpTyqa82Zd0u3+n3LYeETsh9eetnO3uqdzsdr/K5mX3sim/Wg8JIfWnlP8d\nHne7u/L89t6zp6QMhNSbUn4/vr/3+w+asgi9EVJKFqE3QkrJIvTmGNLvn5HuGo+InZD6cwzJ\nq3aJCKk3x5CcIyUipN58Cmn3tPGbDUkICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQL8H5sEkT1X9RA0AAAAAElFTkSuQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 420, + "width": 420 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "id": "08103a39", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAaE0lEQVR4nO3d63LeRrIsUFD3I1ki3/9pt6SxtrWPjYHBTnxINNb6QdOe\nYFVFMzM4shQzywswbDn7AJiBIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAInFly4joIclh8GDL/3s9RYI/\nKRIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEXL9I394vTx9fXj69WZ4+JA+CHS5fpOen5btPH398XN4m\nL4J/7/JF+rB8/zn04Wl5//zy/PNzOMHli/T08wuX5fnnX55i98Aely/Ssvz18ddf/s9//JvX\nX8eslhG/z7l6kZ5+K9Lzf/+JpEj8TaoAly/Sr18jfXj+8/P8CiamSH/a8W/tFIm/UaRf/v3v\nIykSf6NIlSu4GkWqXMHVKFLlCq5GkSpXcDWKVLmCq1GkyhVcjSJVruBqFKlyBVejSJUruBpF\nqlzB1ShS5QquRpEqV3A1ilS5gqtRpMoVXI0iVa7gahSpcgVXo0iVK7gaRapcwdUoUuUKrkaR\n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\niYP2zBmmSKE5dTFx0J45wxQpNKcuJg7aM2eYIoXm1MXEQXvmDFOk0Jy6mDhoz5xhihSaUxcT\nB+2ZM0yRQnPqYuKgPXOGKVJoTl1MHLRnzjBFCs2pi4mD9swZdmaRliG/Dyr4rtTFxEF75gw7\ntUgDj1D3XXHQ5Q5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiR\njnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQ\nrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU6\n6jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3\nOkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo\n13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93q\nIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe\n00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuD\nFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpN\nB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qoJIi/fHx3fLDuw9/vHLFVN8V\nB13uoIoiPb9Z/vL2dSum+q446HIHVRTpw/L0+evPz759eVo+vGrFVN8VB13uoIoiPS1f//fz\nr8vTq1ZM9V1x0OUOqijSsqz9zZ//5DfrM0akBjnotgetBfM1HvATCeY38GukL99+frb5aySY\n36t/vL397Ufkm+fkSXA9A7+P9OHn7yM9vfu48ftIML8H/MkGmJ8iQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiXc2yfHu3PH38+fmnN8ubTyffw0+KdDXL8rR896NJb398srw9+yJeFOl6\nvjfn+eXT8ubl5fPy9PXl69Py+eyTUKTrWZY/fn58eXm3fPn+2Rc/khoo0tUsy6+P//ns1184\nlW/C1ShSJd+Eq1GkSr4JV/NXkX79GundyRfxokjX81eR/Fu7Iop0NX8Vye8jFVGkq/mtSC+f\nnvzJhhKKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGK\nBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAH/Ayzv44rlEgIU\nAAAAAElFTkSuQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 420, + "width": 420 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "barplot(df$A, ylab = 'A',xlab = 'no')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "768d4300", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "4.1.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 55670f0bcd4bdfc4b90731a5cfbdcdc8fad2740e Mon Sep 17 00:00:00 2001 From: Keshav Sharma <61562452+keshav340@users.noreply.github.com> Date: Sat, 9 Oct 2021 20:26:17 -0700 Subject: [PATCH 11/30] Delete 2-Working-With-Data/R directory --- 2-Working-With-Data/R/pandas.ipynb | 936 ----------------------------- 1 file changed, 936 deletions(-) delete mode 100644 2-Working-With-Data/R/pandas.ipynb diff --git a/2-Working-With-Data/R/pandas.ipynb b/2-Working-With-Data/R/pandas.ipynb deleted file mode 100644 index 323f0133..00000000 --- a/2-Working-With-Data/R/pandas.ipynb +++ /dev/null @@ -1,936 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 73, - "id": "c105e391", - "metadata": {}, - "outputs": [], - "source": [ - "library(dplyr)\n", - "library(tidyverse)" - ] - }, - { - "cell_type": "markdown", - "id": "00c41f19", - "metadata": {}, - "source": [ - "## Series" - ] - }, - { - "cell_type": "markdown", - "id": "d3490356", - "metadata": {}, - "source": [ - "a<- 1:9" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "id": "2ef3725d", - "metadata": {}, - "outputs": [], - "source": [ - "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "id": "14e6152d", - "metadata": {}, - "outputs": [], - "source": [ - "a1 = length(a)\n", - "b1 = length(b)" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "id": "432b0c2b", - "metadata": {}, - "outputs": [], - "source": [ - "a = data.frame(a,row.names = c(1:a1))" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "id": "adb4391f", - "metadata": {}, - "outputs": [], - "source": [ - "b = data.frame(b,row.names = c(1:b1))" - ] - }, - { - "cell_type": "markdown", - "id": "9d27aa12", - "metadata": {}, - "source": [ - "idx<- seq.Date(from = as.Date(\"20-01-01\"), to = as.Date(\"2001-03-31\"), by = \"day\",)\n", - "print(length(idx))\n" - ] - }, - { - "cell_type": "markdown", - "id": "ee4be842", - "metadata": {}, - "source": [ - "## DataFrame" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "id": "a8585654", - "metadata": {}, - "outputs": [], - "source": [ - "a = data.frame(a,row.names = c(1:a1))" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "id": "2b8c18b3", - "metadata": {}, - "outputs": [], - "source": [ - "b = data.frame(b,row.names = c(1:b1))" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "60b643d5", - "metadata": {}, - "outputs": [ - { - "ename": "ERROR", - "evalue": "Error in bar.plot(data): could not find function \"bar.plot\"\n", - "output_type": "error", - "traceback": [ - "Error in bar.plot(data): could not find function \"bar.plot\"\nTraceback:\n" - ] - } - ], - "source": [ - "bar.plot(data)" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "id": "113578b5", - "metadata": {}, - "outputs": [], - "source": [ - "df <- data.frame(a,b)" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "id": "ef1dff63", - "metadata": {}, - "outputs": [], - "source": [ - "df = df %>% \n", - " rename(\n", - " A = a,\n", - " B = b\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "id": "1d80bf43", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" - ], - "text/latex": [ - "A data.frame: 9 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like \\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\t5 & 5 & Python\\\\\n", - "\t6 & 6 & and \\\\\n", - "\t7 & 7 & Pandas\\\\\n", - "\t8 & 8 & very \\\\\n", - "\t9 & 9 & much \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "| 5 | 5 | Python |\n", - "| 6 | 6 | and |\n", - "| 7 | 7 | Pandas |\n", - "| 8 | 8 | very |\n", - "| 9 | 9 | much |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like \n", - "3 3 to \n", - "4 4 use \n", - "5 5 Python\n", - "6 6 and \n", - "7 7 Pandas\n", - "8 8 very \n", - "9 9 much " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "id": "831630d7", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Column A (series):\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" - ], - "text/latex": [ - "A data.frame: 9 × 1\n", - "\\begin{tabular}{r|l}\n", - " & A\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t1 & 1\\\\\n", - "\t2 & 2\\\\\n", - "\t3 & 3\\\\\n", - "\t4 & 4\\\\\n", - "\t5 & 5\\\\\n", - "\t6 & 6\\\\\n", - "\t7 & 7\\\\\n", - "\t8 & 8\\\\\n", - "\t9 & 9\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 1\n", - "\n", - "| | A <int> |\n", - "|---|---|\n", - "| 1 | 1 |\n", - "| 2 | 2 |\n", - "| 3 | 3 |\n", - "| 4 | 4 |\n", - "| 5 | 5 |\n", - "| 6 | 6 |\n", - "| 7 | 7 |\n", - "| 8 | 8 |\n", - "| 9 | 9 |\n", - "\n" - ], - "text/plain": [ - " A\n", - "1 1\n", - "2 2\n", - "3 3\n", - "4 4\n", - "5 5\n", - "6 6\n", - "7 7\n", - "8 8\n", - "9 9" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "cat(\"Column A (series):\\n\")\n", - "select(df,'A')" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "id": "055bc484", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" - ], - "text/latex": [ - "A data.frame: 4 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like\\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 4 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like\n", - "3 3 to \n", - "4 4 use " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A<5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "05c2c45a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" - ], - "text/latex": [ - "A data.frame: 1 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t6 & 6 & and\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 6 | 6 | and |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "6 6 and" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A>5 & df$A<7,]" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "id": "ac8a234f", - "metadata": {}, - "outputs": [], - "source": [ - "df$DivA <- df$A - mean(df$A)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "id": "fb7ee6bd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" - ], - "text/latex": [ - "A data.frame: 9 × 3\n", - "\\begin{tabular}{r|lll}\n", - " & A & B & DivA\\\\\n", - " & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4\\\\\n", - "\t2 & 2 & like & -3\\\\\n", - "\t3 & 3 & to & -2\\\\\n", - "\t4 & 4 & use & -1\\\\\n", - "\t5 & 5 & Python & 0\\\\\n", - "\t6 & 6 & and & 1\\\\\n", - "\t7 & 7 & Pandas & 2\\\\\n", - "\t8 & 8 & very & 3\\\\\n", - "\t9 & 9 & much & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 3\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> |\n", - "|---|---|---|---|\n", - "| 1 | 1 | I | -4 |\n", - "| 2 | 2 | like | -3 |\n", - "| 3 | 3 | to | -2 |\n", - "| 4 | 4 | use | -1 |\n", - "| 5 | 5 | Python | 0 |\n", - "| 6 | 6 | and | 1 |\n", - "| 7 | 7 | Pandas | 2 |\n", - "| 8 | 8 | very | 3 |\n", - "| 9 | 9 | much | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA\n", - "1 1 I -4 \n", - "2 2 like -3 \n", - "3 3 to -2 \n", - "4 4 use -1 \n", - "5 5 Python 0 \n", - "6 6 and 1 \n", - "7 7 Pandas 2 \n", - "8 8 very 3 \n", - "9 9 much 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "id": "62e9c8dd", - "metadata": {}, - "outputs": [], - "source": [ - "df$LenB <- str_length(df$B)" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "id": "849c33cc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" - ], - "text/latex": [ - "A data.frame: 9 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\t7 & 7 & Pandas & 2 & 6\\\\\n", - "\t8 & 8 & very & 3 & 4\\\\\n", - "\t9 & 9 & much & 4 & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "| 7 | 7 | Pandas | 2 | 6 |\n", - "| 8 | 8 | very | 3 | 4 |\n", - "| 9 | 9 | much | 4 | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 \n", - "7 7 Pandas 2 6 \n", - "8 8 very 3 4 \n", - "9 9 much 4 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "id": "0a65495d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" - ], - "text/latex": [ - "A data.frame: 5 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[0:5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "id": "ccebdda2", - "metadata": {}, - "outputs": [], - "source": [ - " df1 = group_by(df,LenB)" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "f2dcb719", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A tibble: 5 × 2
LenBmymean
<int><dbl>
11
22
33
44
66
\n" - ], - "text/latex": [ - "A tibble: 5 × 2\n", - "\\begin{tabular}{ll}\n", - " LenB & mymean\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t 1 & 1\\\\\n", - "\t 2 & 2\\\\\n", - "\t 3 & 3\\\\\n", - "\t 4 & 4\\\\\n", - "\t 6 & 6\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A tibble: 5 × 2\n", - "\n", - "| LenB <int> | mymean <dbl> |\n", - "|---|---|\n", - "| 1 | 1 |\n", - "| 2 | 2 |\n", - "| 3 | 3 |\n", - "| 4 | 4 |\n", - "| 6 | 6 |\n", - "\n" - ], - "text/plain": [ - " LenB mymean\n", - "1 1 1 \n", - "2 2 2 \n", - "3 3 3 \n", - "4 4 4 \n", - "5 6 6 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "summarise(df1,mymean =mean(LenB))" - ] - }, - { - "cell_type": "markdown", - "id": "d8eb00bc", - "metadata": {}, - "source": [ - "## Printing and Plotting" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b96b6be0", - "metadata": {}, - "outputs": [], - "source": [ - "dataset = read.csv(\"file name\")" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "3b1a4735", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" - ], - "text/latex": [ - "A data.frame: 6 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 6 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 151, - "id": "0af4e0e5", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVuklEQVR4nO3djVYbuxWAUZn/ULDf/22LDYm5CQbbc0Y6kvZeC4c2C0Yj6cNg\n0absgMVK6wHACIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEASqEVKAzV+zy+HAaXAIiCQkCCAkCCAkCCAkC\nCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAnO9c3/olxIcJ5DRadS\nEhKcp3x6PPGXV3y+VQmJdMpff379t1d8whUJiXTKp7ev//aKT7gyIZFO+diXQoIlyjcdCQnO\n5FU7WGxfkHMkWOanLSkk+NmPO1JI8KOfN6SQ4Cdn7EchwQ/O2Y5Cgu+dtRuFBN86bzMKCb5x\n7r9pKSQ47eydKCQ46fyNKCQ45YJ9KCQ44ZJtKCT42kW7UEjwpcs2oZDgKxfuQSHBv849Pjp+\nwBXXuPxDEl4CTrt8AwoJ/lanCiExtmu2n5Dgv67afUKC/7hu8wkJPrty7wkJPrl26wkJ/rj4\n+Oj4kVU+JOEl4B8L9p2Q4MOSbSckeLdo1wkJDpZtOiHB3sI9JyTYLd9yQoIFL3v/+QxVPiTh\nJeCPgP0mJKYXsd2ExOxCdpuQmFzMZhMScwvaa0JialFbTUjMLGynCYl5LT8+On6qKh+S8BIQ\nuc2ExKxCd5mQmFTsJhMScwreY0JiStFbTEjMKHyHCYkJxW8wITGdwOOj4+es8iEJL8G0Vtld\nQmIy62wuITGXlfaWkJjKWltLSMxktZ0lJCay3sYSEvNYcV8JiVmscXx0/ORVPiThJZjNuptK\nSMxh5T0lJKaw9pYSEjNYfUcJiQmsv6GExPhybtmco4JTamynmiG93pfN4273dFM2DytdAj4p\n+6OjVY+Pjpeq8iEH283bfZWnx/1juV3lEnB0KKhORlVDeihvz0MPm3K/3W0P78dfAo4Ou2jA\nkDYfN7Y9/LFZ4xLwR/l4qLOZKoZUPn+F+PcLRfnsykvAH+XTW52rrf8hB5tPIW09I7GycnxS\nqnO1Ch9y8PtnpIftx/vxl4CjUrEjr9oxrFFftXOOREXvR0jVdpLfbGBItbeQkBhR9R0kJAZU\nfwMJifE02D9CYjgtto+QGE2T3SMkBtNm8wiJsTTaO0JiJM1+31lIDKTdxhES42i4b4TEMFpu\nGyExiqa7RkgMou2mERJjaLxnhMQQWm8ZITGC5jtGSPQvwf/tlJDoXobtIiR6l2K3CInO5dgs\nQqJvSfaKkOhalq0iJHqWZqcIiY7l2ShCol+J9omQ6FWCY9gjIdGpXJtESPQp2R4REl3KtkWE\nRI/S7RAh0aF8G0RI9Cfh/hAS3cm4PYREb1LuDiHRl1THsEdCoitZt4aQ6EnanSEkOpJ3YwiJ\nfiTeF0KiG5m3hZDoRepdISQ6kXtTCIk+JN8TQqIHSY9hj4REB/JvCCGRXwf7QUik18N2EBLZ\ndbEbhERyfWwGIZFbJ3tBSKTWy1YQEpl1sxOERF7pj2GPhERaPW0DIZFVV7tASCTV1yYQEjl1\ntgeEREq9bQEhkVF3O0BIJNTfBhAS+XS4/kIim46OYY+ERB5l31Cfiy8ksjg8E3X5dLQTEnkc\nVl1IkTqdTJYoHw99Lr6QSKJ8euuPkEiiHJ+UOiQksigddyQk0vCqXbhOJ5MFDkdIvWYkJJLo\nfcmFRAbdr7iQSKD/BRcS7Q2w3kKiuRGWW0i0NsRqC4nGxlhsIdHWIGstJFrq9wT2L0KioXEW\nWki0M9A6C4lmRlpmIdHKUKssJBoZa5GFRBuDrbGQaGK0JRYSLQy3wkKivmGOYY+ERHUjLq+Q\nqG3I1RUSlY25uEKirkHXVkhUNerSComahl1ZIVHRuAsrJOoZeF2FRC0DHsMeCYlKxl5UIVHH\n4GsqJKoYfUmFRA3Dr6iQqGD8BRUS65tgPYXE6mZYTiGxtilWU0isa+hj2CMhsapZllJIrGma\nlRQSK5pnIYXEeiZaRyGxmpmWUUisZapVFBIrmWsRhcQ6JltDIbGGSY5hj4TECuZbQCERb8L1\nExLhZlw+IRFtytUTEsHmXDwhEWvStRMSoWZdOiERadqVExJxpjuGPRISYWZeNiERZepVExJB\n5l40IRFj8jUTEiFmXzIhEWH6FRMSASyYkFjOegmJxSY+hj2qGdL2YfP2+HhTyu2vlS5BVWXf\nkMXaqxjS6+Zt2rdvD3u3q1yCmg7PRJ6O3lUM6b7cbd8e7l/fmrovD2tcgpoOqySkdxVDKmX7\n8fD2XV7ZrHEJKiofDxZrr2pIbw+b8uk//PXXn1x5CSoqn96o+q3dy273uH/YPyN9+0OStelA\nOT4pUTOkl7J5eNndbd5Ker4pz2tcgpqKjo5qvvz9vDl+7/a4ziWoyKt2n9Q9kP11f7Ov6O7x\ndbVLUMnhCElGv/nNBq5iif5LSFzDCv1FSFzBAv1NSFzO+vxDSFzM8vxLSFzK6nxBSFzI4nxF\nSFzEydHXhMQlrMwJQuICFuYUIXE+63KSkDibZTlNSJzLqnxDSJzJonxHSJzHmnxLSJzD8dEP\nhMQZLMhPhMTPrMePhMSPLMfPhMRPrMYZhMQPLMY5hMT3rMVZhMS3LMV5hMQ3HB+dS0icZh3O\nJiROsgznExKnWIULCIkTLMIlhMTXrMFFhMSXLMFlhMQXvOx9KSHxL/N/MSHxD9N/OSHxN7N/\nBSHxF5N/DSHxX+b+KkLiP0z9dYTEZ2b+SkLiyPHR1YTEH6b9ekLiN7O+gJD4YNKXEBLvzPki\nQuLAlC8jJPbM+EJCYmfClxMSjo8CCAmzHUBI0zPZEYQ0O3MdQkiTM9UxhDQ3Mx1ESFMz0VGE\nNDPzHEZI83J8FEhI0zLJkYQ0K3McSkiTMsWxhDQnMxxMSFMywdGCQnp52Cweyg+XII75DRcR\n0uvjTSlC6ofpjbc4pO2vt4rK7XPQeL66BFHK/ujI8dEaFob067bsvYaN599LEOVQkIzWsSSk\n5/u3hjYPL/FrY7HXcJhVIa1jQUibfUX/262xNhZ7BeXjweSuYUFIpTz8fidsOH9dgkDl0xvR\nPCNNoxyflAgX8DPS/4TUh6Kj9XjVbh5etVtR0DnSnXOk7N6PkMzsSvxmwyRM6br8rt0czOjK\n/Pb3FEzo2oQ0A/O5OiFNwHSuT0jjM5sVCGl4JrMGIY3OXFYhpLE5ga1ESEMzkbUIaWTmsRoh\nDcw01iOkcZnFioQ0LJNYk5BGZQ6rEtKgTGFdQhqTGaxMSCNyDFudkAZk+uoT0njMXgNCGo7J\na0FIozF3TQhpMKauDSGNxcw1IqShmLhWhDQS89aMkMbhGLYhIQ3DpLUkpFGYs6aENAhT1paQ\nxmDGGhPSEExYa0IagflqTkgDMF3tCal/ZisBIfXOMWwKQuqcqcpBSH0zU0kIqWsmKgsh9cw8\npSGkjpmmPITUL7OUiJC6ZZIyEVKvzFEqQuqTY9hkhNQlE5SNkHpkftIRUodMTz5C6o/ZSUhI\n3TE5GQmpN+YmJSF1xtTkJKS+mJmkhNQTx7BpCakjpiUvIfXDrCQmpG6YlMyE1AtzkpqQOmFK\nchNSH8xIckLqggnJTkg9MB/pCSk/x7AdaBLSjzvDznlX9jNlMnogpLwO0+TpqA8VQyr/tcYl\nxnKYBSH1oWJI/9sI6RLl48Fk9KDmt3bbu3L7evgMX32KsyubRfn0RnZ1f0b6VcqvnZ+RzlOO\nT0qkV/nFhtfbcrcV0nmKjvpR/VW7x7J5FtJZvGrXkfovf7/c/PwzkM3zXpCfFrvR4hzpXkg/\nMwV98StCOZmBzggppeknoDtCymj2+++QkBKa/Pa7JKR85r77TgkpnalvvltCymbme++YkHJx\nAtspIaUy7Y13T0iZzHrfAxBSIpPe9hCElMecdz0IIaUx5U0PQ0hZzHjPAxFSEhPe8lCElMN8\ndzwYIWXgGLZ7QkpgstsdkpDam+tuByWk5qa62WEJqbWZ7nVgQmpsolsdmpDamudOByekpqa5\n0eEJqaVZ7nMCQmrHMexAhNTMFDc5DSG1MsM9TkRIjUxwi1MRUhvj3+FkhNTE8Dc4HSG1MPr9\nTUhIDQx+e1MSUn1j392khFSbY9ghCamygW9takKqa9w7m5yQqhr2xqYnpJpGvS+EVNOgt8VO\nSDWNeVccCKmaIW+KD0KqZcR74g8h1eEYdnBCqmK4G+IvQqphtPvhH0KqYLDb4QtCWt9Yd8OX\nhLS6oW6GE4S0tpHuhZOEtLKBboVvCGld49wJ3xLSmhzDTkNIKxrkNjiDkNYzxl1wFiGtZoib\n4ExCWssI98DZhLSSAW6BCwhpHf3fARcR0iq6vwEuJKQ19D5+LiakeI5hJySkSGXfUK+DZwkh\nxTk8E3k6mpOQ4hxGLaQ5CSlM+XjocvAsJKQw5dMbsxFSmHJ8UmI6QopTdDQvIcXxqt3EhBTl\ncIQko1kJKUiHQyaQkGL0N2JCCSlEdwMmmJAi9DZewgkpQGfDZQVCWq6v0bIKIS3W1WBZiZAW\ncnLEnpCW6WekrEpIi3QzUFYmpCV6GSerE9ICnQyTCoR0vT5GSRVCuloXg6QSIV2rhzFSjZCu\n4/iI/xDSVdIPkMqEdI3s46M6IV0h+fBoQEiXyz06mhDSxVIPjkaEdKnMY6MZIV0o8dBoSEgX\ncXzE14R0iazjojkhXSDpsEhASOfLOSpSENLZUg6KJIR0roxjIg0hnSnhkEhESGfxsjffE9I5\nso2HdIR0hmTDISEh/SzXaEhJSD9KNRiSEtJPMo2FtIT0g0RDITEhfS/PSEhNSN9xfMSZhPSN\nJMOgA0I6Lcco6IKQTkoxCDohpFMyjIFuCCnvEOiIkLKOgK4IKecA6IyQvrq8jriQkLJdnS4J\nKdfF6ZSQMl2bbgkpz6XpmJCyXJmuCSnHhemckDJcl+4J6dNVdcS1hNT2ogxCSC2vyTCE1O6S\nDERIra7IUITU5oIMRkgtrsdwhFT/cgyoZkjb+1Junz8+ybefpdbOLvthOD5iuYohbTdl7+79\nkyQI6TAGGRGhYkgP5emtpqfN7eGTZAjp54HAeSqGtHn/wNfNzWuKkMrHg5JYrmJIv9vZ3t5+\nFVL57MpLXDaeT2+wTMWQbsr293u3SZ6Rfj8pwUIVQ3oq9x/vvZbbBCF9xKwjAtR8+fvhTz3P\nP3z35lU7OlP1QPbl7vd7r/fNQ3o/QpIRIab9zQYFEWnWkHREqElD0hGx5gxJRwSbMiQdEW3G\nkHREuAlD0hHx5gtJR6xgtpCcwLKKyUKSEeuYKyQdsZKpQtIRa5kpJB2xmolC0hHrmSckHbGi\naULSEWuaJSQdsao5QnIMy8qmCElGrG2GkHTE6iYISUesb/yQdEQFw4ekI2oYPSQdUcXgIemI\nOsYOSUdUMnJIjmGpZuCQZEQ944akIyoaNiQdUdOoIemIqgYNSUfUNWZIOqKyIUPSEbWNGJKO\nqG68kBzD0sBwIcmIFkYLSUc0MVhIOqKNsULSEY0MFZKOaGWkkHREMwOFpCPaGSckHdHQKCE5\nhqWpQUKSEW2NEZKOaGyIkHREayOEpCOaGyAkHdFe/yHpiAS6D0lHZNB7SDoihb5DcgxLEl2H\nJCOy6DkkHZFGxyHpiDz6DUlHJNJtSDoik15D0hGpdBqSjsilz5B0RDI9huQYlnT6CqnsG5IR\n+fQU0uGZyNMRGXUV0uFBSCTUUUjl40FJ5NNZSOXUX0JTnYVU6fpwoY5C+vhvdURCXYXkVTuy\n6imkj3MkyKevkCApIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEA\nIUEAIUEAIUGApCFBZ67Y5fHhNJP9XoxvmdTjSz24C2W/F+NbJvX4Ug/uQtnvxfiWST2+1IO7\nUPZ7Mb5lUo8v9eAulP1ejG+Z1ONLPbgLZb8X41sm9fhSD+5C2e/F+JZJPb7Ug7tQ9nsxvmVS\njy/14C6U/V6Mb5nU40s9uAtlvxfjWyb1+FIP7kLZ78X4lkk9vtSDu1D2ezG+ZVKPL/XgoBdC\nggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggDDhPR0UzYP29aj\n+Nb/Mk/2y30p96+tR3HS9mGTe30zr+0lHg7/iMAm8UzvtpvEk/2ce/5eN+/jy1t64rW9xEu5\nf9sDT+W+9UC+cXfNvxZSy2bzstvelYfW4zjh/jCyh8Trm3htL3H3fh+Zt+qvq/7ZnUp+HTbq\ntmxaD+SEkn59847sGokn+rXcJh7dfXlpPYRvfXxXnDb0wULaltvWQzjptrwmDumm7B43h2+P\nc3r8+NbusfVATsq7tld4Ks+th3DKY/mV+fmylLvDD/Otx3HS0/7Vhs1T62GclndtL/e6uWs9\nhFNeyl3qbzzfNunLbnuf9yv+4+FVu7TDGyqk7SbvN3Y3+xeWU4e0/xnptdy0HsgJT/tv7d5C\nz/uUlHdtL3abdRfsf5bff8+ZOqTPf+RzU/Y/vm3Thj5QSK83t4lP6xb8u/NVZD8+yB76OCE9\nJ37BroOQHg9Pma9pJ/H95e+851zDhJR3C3ySNqPDT0fb/c8gv1oP5ISHsv89u4e0v3kxTEj3\nyb/iH2Qe3furYnm/Gt0mH98oIWX/1ukg9eieb8sm79f7t2ejTe7xZV5b6IaQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQelPK613ZPB7e\nf7opN0+Nx8OBkHpTyqa82Zd0u3+n3LYeETsh9eetnO3uqdzsdr/K5mX3sim/Wg8JIfWnlP8d\nHne7u/L89t6zp6QMhNSbUn4/vr/3+w+asgi9EVJKFqE3QkrJIvTmGNLvn5HuGo+InZD6cwzJ\nq3aJCKk3x5CcIyUipN58Cmn3tPGbDUkICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQL8H5sEkT1X9RA0AAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "08103a39", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAaE0lEQVR4nO3d63LeRrIsUFD3I1ki3/9pt6SxtrWPjYHBTnxINNb6QdOe\nYFVFMzM4shQzywswbDn7AJiBIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAInFly4joIclh8GDL/3s9RYI/\nKRIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEXL9I394vTx9fXj69WZ4+JA+CHS5fpOen5btPH398XN4m\nL4J/7/JF+rB8/zn04Wl5//zy/PNzOMHli/T08wuX5fnnX55i98Aely/Ssvz18ddf/s9//JvX\nX8eslhG/z7l6kZ5+K9Lzf/+JpEj8TaoAly/Sr18jfXj+8/P8CiamSH/a8W/tFIm/UaRf/v3v\nIykSf6NIlSu4GkWqXMHVKFLlCq5GkSpXcDWKVLmCq1GkyhVcjSJVruBqFKlyBVejSJUruBpF\nqlzB1ShS5QquRpEqV3A1ilS5gqtRpMoVXI0iVa7gahSpcgVXo0iVK7gaRapcwdUoUuUKrkaR\n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\niYP2zBmmSKE5dTFx0J45wxQpNKcuJg7aM2eYIoXm1MXEQXvmDFOk0Jy6mDhoz5xhihSaUxcT\nB+2ZM0yRQnPqYuKgPXOGKVJoTl1MHLRnzjBFCs2pi4mD9swZdmaRliG/Dyr4rtTFxEF75gw7\ntUgDj1D3XXHQ5Q5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiR\njnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQ\nrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU6\n6jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3\nOkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo\n13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93q\nIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe\n00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuD\nFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpN\nB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qoJIi/fHx3fLDuw9/vHLFVN8V\nB13uoIoiPb9Z/vL2dSum+q446HIHVRTpw/L0+evPz759eVo+vGrFVN8VB13uoIoiPS1f//fz\nr8vTq1ZM9V1x0OUOqijSsqz9zZ//5DfrM0akBjnotgetBfM1HvATCeY38GukL99+frb5aySY\n36t/vL397Ufkm+fkSXA9A7+P9OHn7yM9vfu48ftIML8H/MkGmJ8iQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiXc2yfHu3PH38+fmnN8ubTyffw0+KdDXL8rR896NJb398srw9+yJeFOl6\nvjfn+eXT8ubl5fPy9PXl69Py+eyTUKTrWZY/fn58eXm3fPn+2Rc/khoo0tUsy6+P//ns1184\nlW/C1ShSJd+Eq1GkSr4JV/NXkX79GundyRfxokjX81eR/Fu7Iop0NX8Vye8jFVGkq/mtSC+f\nnvzJhhKKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGK\nBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAH/Ayzv44rlEgIU\nAAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "barplot(df$A, ylab = 'A',xlab = 'no')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "768d4300", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "R", - "language": "R", - "name": "ir" - }, - "language_info": { - "codemirror_mode": "r", - "file_extension": ".r", - "mimetype": "text/x-r-source", - "name": "R", - "pygments_lexer": "r", - "version": "4.1.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From f76221fac3eac574ac70f4f311c3daa724d7ac7d Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Sat, 9 Oct 2021 20:28:25 -0700 Subject: [PATCH 12/30] Update pandas.ipynb --- 2-Working-With-Data/R/pandas.ipynb | 69 +++++++++++++----------------- 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/2-Working-With-Data/R/pandas.ipynb b/2-Working-With-Data/R/pandas.ipynb index 323f0133..901a51c9 100644 --- a/2-Working-With-Data/R/pandas.ipynb +++ b/2-Working-With-Data/R/pandas.ipynb @@ -3,7 +3,7 @@ { "cell_type": "code", "execution_count": 73, - "id": "c105e391", + "id": "f356bf26", "metadata": {}, "outputs": [], "source": [ @@ -13,7 +13,7 @@ }, { "cell_type": "markdown", - "id": "00c41f19", + "id": "717d5825", "metadata": {}, "source": [ "## Series" @@ -21,7 +21,7 @@ }, { "cell_type": "markdown", - "id": "d3490356", + "id": "03ac7b71", "metadata": {}, "source": [ "a<- 1:9" @@ -30,7 +30,7 @@ { "cell_type": "code", "execution_count": 75, - "id": "2ef3725d", + "id": "f4149d4e", "metadata": {}, "outputs": [], "source": [ @@ -40,7 +40,7 @@ { "cell_type": "code", "execution_count": 76, - "id": "14e6152d", + "id": "5633dd5e", "metadata": {}, "outputs": [], "source": [ @@ -51,7 +51,7 @@ { "cell_type": "code", "execution_count": 77, - "id": "432b0c2b", + "id": "834b824d", "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ { "cell_type": "code", "execution_count": 78, - "id": "adb4391f", + "id": "f25cedc2", "metadata": {}, "outputs": [], "source": [ @@ -70,16 +70,7 @@ }, { "cell_type": "markdown", - "id": "9d27aa12", - "metadata": {}, - "source": [ - "idx<- seq.Date(from = as.Date(\"20-01-01\"), to = as.Date(\"2001-03-31\"), by = \"day\",)\n", - "print(length(idx))\n" - ] - }, - { - "cell_type": "markdown", - "id": "ee4be842", + "id": "aea16930", "metadata": {}, "source": [ "## DataFrame" @@ -88,7 +79,7 @@ { "cell_type": "code", "execution_count": 140, - "id": "a8585654", + "id": "0793b3b7", "metadata": {}, "outputs": [], "source": [ @@ -98,7 +89,7 @@ { "cell_type": "code", "execution_count": 141, - "id": "2b8c18b3", + "id": "bde43cd9", "metadata": {}, "outputs": [], "source": [ @@ -108,7 +99,7 @@ { "cell_type": "code", "execution_count": 109, - "id": "60b643d5", + "id": "5db4a116", "metadata": {}, "outputs": [ { @@ -127,7 +118,7 @@ { "cell_type": "code", "execution_count": 79, - "id": "113578b5", + "id": "e5e6313c", "metadata": {}, "outputs": [], "source": [ @@ -137,7 +128,7 @@ { "cell_type": "code", "execution_count": 80, - "id": "ef1dff63", + "id": "8358faeb", "metadata": {}, "outputs": [], "source": [ @@ -151,7 +142,7 @@ { "cell_type": "code", "execution_count": 81, - "id": "1d80bf43", + "id": "c439f0f3", "metadata": {}, "outputs": [ { @@ -234,7 +225,7 @@ { "cell_type": "code", "execution_count": 82, - "id": "831630d7", + "id": "26c75894", "metadata": {}, "outputs": [ { @@ -325,7 +316,7 @@ { "cell_type": "code", "execution_count": 83, - "id": "055bc484", + "id": "7f6885ba", "metadata": {}, "outputs": [ { @@ -388,7 +379,7 @@ { "cell_type": "code", "execution_count": 84, - "id": "05c2c45a", + "id": "0018c9fc", "metadata": {}, "outputs": [ { @@ -439,7 +430,7 @@ { "cell_type": "code", "execution_count": 85, - "id": "ac8a234f", + "id": "079a3b19", "metadata": {}, "outputs": [], "source": [ @@ -449,7 +440,7 @@ { "cell_type": "code", "execution_count": 86, - "id": "fb7ee6bd", + "id": "64dac80e", "metadata": {}, "outputs": [ { @@ -532,7 +523,7 @@ { "cell_type": "code", "execution_count": 87, - "id": "62e9c8dd", + "id": "c2fdab9c", "metadata": {}, "outputs": [], "source": [ @@ -542,7 +533,7 @@ { "cell_type": "code", "execution_count": 88, - "id": "849c33cc", + "id": "c523989b", "metadata": {}, "outputs": [ { @@ -625,7 +616,7 @@ { "cell_type": "code", "execution_count": 89, - "id": "0a65495d", + "id": "c095b403", "metadata": {}, "outputs": [ { @@ -692,7 +683,7 @@ { "cell_type": "code", "execution_count": 91, - "id": "ccebdda2", + "id": "f6f37d10", "metadata": {}, "outputs": [], "source": [ @@ -702,7 +693,7 @@ { "cell_type": "code", "execution_count": 93, - "id": "f2dcb719", + "id": "c1908f62", "metadata": {}, "outputs": [ { @@ -768,7 +759,7 @@ }, { "cell_type": "markdown", - "id": "d8eb00bc", + "id": "f927a466", "metadata": {}, "source": [ "## Printing and Plotting" @@ -777,7 +768,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b96b6be0", + "id": "6e20f11d", "metadata": {}, "outputs": [], "source": [ @@ -787,7 +778,7 @@ { "cell_type": "code", "execution_count": 94, - "id": "3b1a4735", + "id": "6bb554db", "metadata": {}, "outputs": [ { @@ -858,7 +849,7 @@ { "cell_type": "code", "execution_count": 151, - "id": "0af4e0e5", + "id": "14fa8a58", "metadata": {}, "outputs": [ { @@ -884,7 +875,7 @@ { "cell_type": "code", "execution_count": 96, - "id": "08103a39", + "id": "0db236b1", "metadata": {}, "outputs": [ { @@ -910,7 +901,7 @@ { "cell_type": "code", "execution_count": null, - "id": "768d4300", + "id": "37d719c4", "metadata": {}, "outputs": [], "source": [] From 8665bf9a86eebcacff72ad27c3cb814c92b5e4d9 Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Sat, 9 Oct 2021 20:32:20 -0700 Subject: [PATCH 13/30] added --- 2-Working-With-Data/R/{pandas.ipynb => Data.ipynb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 2-Working-With-Data/R/{pandas.ipynb => Data.ipynb} (100%) diff --git a/2-Working-With-Data/R/pandas.ipynb b/2-Working-With-Data/R/Data.ipynb similarity index 100% rename from 2-Working-With-Data/R/pandas.ipynb rename to 2-Working-With-Data/R/Data.ipynb From ab2ba5382cbeae62084ee6bfff1d6747f6a25fb6 Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Sat, 9 Oct 2021 21:16:03 -0700 Subject: [PATCH 14/30] Delete Data.ipynb --- 2-Working-With-Data/R/Data.ipynb | 927 ------------------------------- 1 file changed, 927 deletions(-) delete mode 100644 2-Working-With-Data/R/Data.ipynb diff --git a/2-Working-With-Data/R/Data.ipynb b/2-Working-With-Data/R/Data.ipynb deleted file mode 100644 index 901a51c9..00000000 --- a/2-Working-With-Data/R/Data.ipynb +++ /dev/null @@ -1,927 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 73, - "id": "f356bf26", - "metadata": {}, - "outputs": [], - "source": [ - "library(dplyr)\n", - "library(tidyverse)" - ] - }, - { - "cell_type": "markdown", - "id": "717d5825", - "metadata": {}, - "source": [ - "## Series" - ] - }, - { - "cell_type": "markdown", - "id": "03ac7b71", - "metadata": {}, - "source": [ - "a<- 1:9" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "id": "f4149d4e", - "metadata": {}, - "outputs": [], - "source": [ - "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "id": "5633dd5e", - "metadata": {}, - "outputs": [], - "source": [ - "a1 = length(a)\n", - "b1 = length(b)" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "id": "834b824d", - "metadata": {}, - "outputs": [], - "source": [ - "a = data.frame(a,row.names = c(1:a1))" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "id": "f25cedc2", - "metadata": {}, - "outputs": [], - "source": [ - "b = data.frame(b,row.names = c(1:b1))" - ] - }, - { - "cell_type": "markdown", - "id": "aea16930", - "metadata": {}, - "source": [ - "## DataFrame" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "id": "0793b3b7", - "metadata": {}, - "outputs": [], - "source": [ - "a = data.frame(a,row.names = c(1:a1))" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "id": "bde43cd9", - "metadata": {}, - "outputs": [], - "source": [ - "b = data.frame(b,row.names = c(1:b1))" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "5db4a116", - "metadata": {}, - "outputs": [ - { - "ename": "ERROR", - "evalue": "Error in bar.plot(data): could not find function \"bar.plot\"\n", - "output_type": "error", - "traceback": [ - "Error in bar.plot(data): could not find function \"bar.plot\"\nTraceback:\n" - ] - } - ], - "source": [ - "bar.plot(data)" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "id": "e5e6313c", - "metadata": {}, - "outputs": [], - "source": [ - "df <- data.frame(a,b)" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "id": "8358faeb", - "metadata": {}, - "outputs": [], - "source": [ - "df = df %>% \n", - " rename(\n", - " A = a,\n", - " B = b\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "id": "c439f0f3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" - ], - "text/latex": [ - "A data.frame: 9 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like \\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\t5 & 5 & Python\\\\\n", - "\t6 & 6 & and \\\\\n", - "\t7 & 7 & Pandas\\\\\n", - "\t8 & 8 & very \\\\\n", - "\t9 & 9 & much \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "| 5 | 5 | Python |\n", - "| 6 | 6 | and |\n", - "| 7 | 7 | Pandas |\n", - "| 8 | 8 | very |\n", - "| 9 | 9 | much |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like \n", - "3 3 to \n", - "4 4 use \n", - "5 5 Python\n", - "6 6 and \n", - "7 7 Pandas\n", - "8 8 very \n", - "9 9 much " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "id": "26c75894", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Column A (series):\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" - ], - "text/latex": [ - "A data.frame: 9 × 1\n", - "\\begin{tabular}{r|l}\n", - " & A\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t1 & 1\\\\\n", - "\t2 & 2\\\\\n", - "\t3 & 3\\\\\n", - "\t4 & 4\\\\\n", - "\t5 & 5\\\\\n", - "\t6 & 6\\\\\n", - "\t7 & 7\\\\\n", - "\t8 & 8\\\\\n", - "\t9 & 9\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 1\n", - "\n", - "| | A <int> |\n", - "|---|---|\n", - "| 1 | 1 |\n", - "| 2 | 2 |\n", - "| 3 | 3 |\n", - "| 4 | 4 |\n", - "| 5 | 5 |\n", - "| 6 | 6 |\n", - "| 7 | 7 |\n", - "| 8 | 8 |\n", - "| 9 | 9 |\n", - "\n" - ], - "text/plain": [ - " A\n", - "1 1\n", - "2 2\n", - "3 3\n", - "4 4\n", - "5 5\n", - "6 6\n", - "7 7\n", - "8 8\n", - "9 9" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "cat(\"Column A (series):\\n\")\n", - "select(df,'A')" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "id": "7f6885ba", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" - ], - "text/latex": [ - "A data.frame: 4 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like\\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 4 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like\n", - "3 3 to \n", - "4 4 use " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A<5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "0018c9fc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" - ], - "text/latex": [ - "A data.frame: 1 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t6 & 6 & and\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 6 | 6 | and |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "6 6 and" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A>5 & df$A<7,]" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "id": "079a3b19", - "metadata": {}, - "outputs": [], - "source": [ - "df$DivA <- df$A - mean(df$A)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "id": "64dac80e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" - ], - "text/latex": [ - "A data.frame: 9 × 3\n", - "\\begin{tabular}{r|lll}\n", - " & A & B & DivA\\\\\n", - " & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4\\\\\n", - "\t2 & 2 & like & -3\\\\\n", - "\t3 & 3 & to & -2\\\\\n", - "\t4 & 4 & use & -1\\\\\n", - "\t5 & 5 & Python & 0\\\\\n", - "\t6 & 6 & and & 1\\\\\n", - "\t7 & 7 & Pandas & 2\\\\\n", - "\t8 & 8 & very & 3\\\\\n", - "\t9 & 9 & much & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 3\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> |\n", - "|---|---|---|---|\n", - "| 1 | 1 | I | -4 |\n", - "| 2 | 2 | like | -3 |\n", - "| 3 | 3 | to | -2 |\n", - "| 4 | 4 | use | -1 |\n", - "| 5 | 5 | Python | 0 |\n", - "| 6 | 6 | and | 1 |\n", - "| 7 | 7 | Pandas | 2 |\n", - "| 8 | 8 | very | 3 |\n", - "| 9 | 9 | much | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA\n", - "1 1 I -4 \n", - "2 2 like -3 \n", - "3 3 to -2 \n", - "4 4 use -1 \n", - "5 5 Python 0 \n", - "6 6 and 1 \n", - "7 7 Pandas 2 \n", - "8 8 very 3 \n", - "9 9 much 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "id": "c2fdab9c", - "metadata": {}, - "outputs": [], - "source": [ - "df$LenB <- str_length(df$B)" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "id": "c523989b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" - ], - "text/latex": [ - "A data.frame: 9 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\t7 & 7 & Pandas & 2 & 6\\\\\n", - "\t8 & 8 & very & 3 & 4\\\\\n", - "\t9 & 9 & much & 4 & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "| 7 | 7 | Pandas | 2 | 6 |\n", - "| 8 | 8 | very | 3 | 4 |\n", - "| 9 | 9 | much | 4 | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 \n", - "7 7 Pandas 2 6 \n", - "8 8 very 3 4 \n", - "9 9 much 4 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "id": "c095b403", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" - ], - "text/latex": [ - "A data.frame: 5 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[0:5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "id": "f6f37d10", - "metadata": {}, - "outputs": [], - "source": [ - " df1 = group_by(df,LenB)" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "c1908f62", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A tibble: 5 × 2
LenBmymean
<int><dbl>
11
22
33
44
66
\n" - ], - "text/latex": [ - "A tibble: 5 × 2\n", - "\\begin{tabular}{ll}\n", - " LenB & mymean\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t 1 & 1\\\\\n", - "\t 2 & 2\\\\\n", - "\t 3 & 3\\\\\n", - "\t 4 & 4\\\\\n", - "\t 6 & 6\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A tibble: 5 × 2\n", - "\n", - "| LenB <int> | mymean <dbl> |\n", - "|---|---|\n", - "| 1 | 1 |\n", - "| 2 | 2 |\n", - "| 3 | 3 |\n", - "| 4 | 4 |\n", - "| 6 | 6 |\n", - "\n" - ], - "text/plain": [ - " LenB mymean\n", - "1 1 1 \n", - "2 2 2 \n", - "3 3 3 \n", - "4 4 4 \n", - "5 6 6 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "summarise(df1,mymean =mean(LenB))" - ] - }, - { - "cell_type": "markdown", - "id": "f927a466", - "metadata": {}, - "source": [ - "## Printing and Plotting" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6e20f11d", - "metadata": {}, - "outputs": [], - "source": [ - "dataset = read.csv(\"file name\")" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "6bb554db", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" - ], - "text/latex": [ - "A data.frame: 6 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 6 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 151, - "id": "14fa8a58", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVuklEQVR4nO3djVYbuxWAUZn/ULDf/22LDYm5CQbbc0Y6kvZeC4c2C0Yj6cNg\n0absgMVK6wHACIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEASqEVKAzV+zy+HAaXAIiCQkCCAkCCAkCCAkC\nCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAnO9c3/olxIcJ5DRadS\nEhKcp3x6PPGXV3y+VQmJdMpff379t1d8whUJiXTKp7ev//aKT7gyIZFO+diXQoIlyjcdCQnO\n5FU7WGxfkHMkWOanLSkk+NmPO1JI8KOfN6SQ4Cdn7EchwQ/O2Y5Cgu+dtRuFBN86bzMKCb5x\n7r9pKSQ47eydKCQ46fyNKCQ45YJ9KCQ44ZJtKCT42kW7UEjwpcs2oZDgKxfuQSHBv849Pjp+\nwBXXuPxDEl4CTrt8AwoJ/lanCiExtmu2n5Dgv67afUKC/7hu8wkJPrty7wkJPrl26wkJ/rj4\n+Oj4kVU+JOEl4B8L9p2Q4MOSbSckeLdo1wkJDpZtOiHB3sI9JyTYLd9yQoIFL3v/+QxVPiTh\nJeCPgP0mJKYXsd2ExOxCdpuQmFzMZhMScwvaa0JialFbTUjMLGynCYl5LT8+On6qKh+S8BIQ\nuc2ExKxCd5mQmFTsJhMScwreY0JiStFbTEjMKHyHCYkJxW8wITGdwOOj4+es8iEJL8G0Vtld\nQmIy62wuITGXlfaWkJjKWltLSMxktZ0lJCay3sYSEvNYcV8JiVmscXx0/ORVPiThJZjNuptK\nSMxh5T0lJKaw9pYSEjNYfUcJiQmsv6GExPhybtmco4JTamynmiG93pfN4273dFM2DytdAj4p\n+6OjVY+Pjpeq8iEH283bfZWnx/1juV3lEnB0KKhORlVDeihvz0MPm3K/3W0P78dfAo4Ou2jA\nkDYfN7Y9/LFZ4xLwR/l4qLOZKoZUPn+F+PcLRfnsykvAH+XTW52rrf8hB5tPIW09I7GycnxS\nqnO1Ch9y8PtnpIftx/vxl4CjUrEjr9oxrFFftXOOREXvR0jVdpLfbGBItbeQkBhR9R0kJAZU\nfwMJifE02D9CYjgtto+QGE2T3SMkBtNm8wiJsTTaO0JiJM1+31lIDKTdxhES42i4b4TEMFpu\nGyExiqa7RkgMou2mERJjaLxnhMQQWm8ZITGC5jtGSPQvwf/tlJDoXobtIiR6l2K3CInO5dgs\nQqJvSfaKkOhalq0iJHqWZqcIiY7l2ShCol+J9omQ6FWCY9gjIdGpXJtESPQp2R4REl3KtkWE\nRI/S7RAh0aF8G0RI9Cfh/hAS3cm4PYREb1LuDiHRl1THsEdCoitZt4aQ6EnanSEkOpJ3YwiJ\nfiTeF0KiG5m3hZDoRepdISQ6kXtTCIk+JN8TQqIHSY9hj4REB/JvCCGRXwf7QUik18N2EBLZ\ndbEbhERyfWwGIZFbJ3tBSKTWy1YQEpl1sxOERF7pj2GPhERaPW0DIZFVV7tASCTV1yYQEjl1\ntgeEREq9bQEhkVF3O0BIJNTfBhAS+XS4/kIim46OYY+ERB5l31Cfiy8ksjg8E3X5dLQTEnkc\nVl1IkTqdTJYoHw99Lr6QSKJ8euuPkEiiHJ+UOiQksigddyQk0vCqXbhOJ5MFDkdIvWYkJJLo\nfcmFRAbdr7iQSKD/BRcS7Q2w3kKiuRGWW0i0NsRqC4nGxlhsIdHWIGstJFrq9wT2L0KioXEW\nWki0M9A6C4lmRlpmIdHKUKssJBoZa5GFRBuDrbGQaGK0JRYSLQy3wkKivmGOYY+ERHUjLq+Q\nqG3I1RUSlY25uEKirkHXVkhUNerSComahl1ZIVHRuAsrJOoZeF2FRC0DHsMeCYlKxl5UIVHH\n4GsqJKoYfUmFRA3Dr6iQqGD8BRUS65tgPYXE6mZYTiGxtilWU0isa+hj2CMhsapZllJIrGma\nlRQSK5pnIYXEeiZaRyGxmpmWUUisZapVFBIrmWsRhcQ6JltDIbGGSY5hj4TECuZbQCERb8L1\nExLhZlw+IRFtytUTEsHmXDwhEWvStRMSoWZdOiERadqVExJxpjuGPRISYWZeNiERZepVExJB\n5l40IRFj8jUTEiFmXzIhEWH6FRMSASyYkFjOegmJxSY+hj2qGdL2YfP2+HhTyu2vlS5BVWXf\nkMXaqxjS6+Zt2rdvD3u3q1yCmg7PRJ6O3lUM6b7cbd8e7l/fmrovD2tcgpoOqySkdxVDKmX7\n8fD2XV7ZrHEJKiofDxZrr2pIbw+b8uk//PXXn1x5CSoqn96o+q3dy273uH/YPyN9+0OStelA\nOT4pUTOkl7J5eNndbd5Ker4pz2tcgpqKjo5qvvz9vDl+7/a4ziWoyKt2n9Q9kP11f7Ov6O7x\ndbVLUMnhCElGv/nNBq5iif5LSFzDCv1FSFzBAv1NSFzO+vxDSFzM8vxLSFzK6nxBSFzI4nxF\nSFzEydHXhMQlrMwJQuICFuYUIXE+63KSkDibZTlNSJzLqnxDSJzJonxHSJzHmnxLSJzD8dEP\nhMQZLMhPhMTPrMePhMSPLMfPhMRPrMYZhMQPLMY5hMT3rMVZhMS3LMV5hMQ3HB+dS0icZh3O\nJiROsgznExKnWIULCIkTLMIlhMTXrMFFhMSXLMFlhMQXvOx9KSHxL/N/MSHxD9N/OSHxN7N/\nBSHxF5N/DSHxX+b+KkLiP0z9dYTEZ2b+SkLiyPHR1YTEH6b9ekLiN7O+gJD4YNKXEBLvzPki\nQuLAlC8jJPbM+EJCYmfClxMSjo8CCAmzHUBI0zPZEYQ0O3MdQkiTM9UxhDQ3Mx1ESFMz0VGE\nNDPzHEZI83J8FEhI0zLJkYQ0K3McSkiTMsWxhDQnMxxMSFMywdGCQnp52Cweyg+XII75DRcR\n0uvjTSlC6ofpjbc4pO2vt4rK7XPQeL66BFHK/ujI8dEaFob067bsvYaN599LEOVQkIzWsSSk\n5/u3hjYPL/FrY7HXcJhVIa1jQUibfUX/262xNhZ7BeXjweSuYUFIpTz8fidsOH9dgkDl0xvR\nPCNNoxyflAgX8DPS/4TUh6Kj9XjVbh5etVtR0DnSnXOk7N6PkMzsSvxmwyRM6br8rt0czOjK\n/Pb3FEzo2oQ0A/O5OiFNwHSuT0jjM5sVCGl4JrMGIY3OXFYhpLE5ga1ESEMzkbUIaWTmsRoh\n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\n+fQU0uGZyNMRGXUV0uFBSCTUUUjl40FJ5NNZSOXUX0JTnYVU6fpwoY5C+vhvdURCXYXkVTuy\n6imkj3MkyKevkCApIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEA\nIUEAIUEAIUGApCFBZ67Y5fHhNJP9XoxvmdTjSz24C2W/F+NbJvX4Ug/uQtnvxfiWST2+1IO7\nUPZ7Mb5lUo8v9eAulP1ejG+Z1ONLPbgLZb8X41sm9fhSD+5C2e/F+JZJPb7Ug7tQ9nsxvmVS\njy/14C6U/V6Mb5nU40s9uAtlvxfjWyb1+FIP7kLZ78X4lkk9vtSDu1D2ezG+ZVKPL/XgoBdC\nggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggDDhPR0UzYP29aj\n+Nb/Mk/2y30p96+tR3HS9mGTe30zr+0lHg7/iMAm8UzvtpvEk/2ce/5eN+/jy1t64rW9xEu5\nf9sDT+W+9UC+cXfNvxZSy2bzstvelYfW4zjh/jCyh8Trm3htL3H3fh+Zt+qvq/7ZnUp+HTbq\ntmxaD+SEkn59847sGokn+rXcJh7dfXlpPYRvfXxXnDb0wULaltvWQzjptrwmDumm7B43h2+P\nc3r8+NbusfVATsq7tld4Ks+th3DKY/mV+fmylLvDD/Otx3HS0/7Vhs1T62GclndtL/e6uWs9\nhFNeyl3qbzzfNunLbnuf9yv+4+FVu7TDGyqk7SbvN3Y3+xeWU4e0/xnptdy0HsgJT/tv7d5C\nz/uUlHdtL3abdRfsf5bff8+ZOqTPf+RzU/Y/vm3Thj5QSK83t4lP6xb8u/NVZD8+yB76OCE9\nJ37BroOQHg9Pma9pJ/H95e+851zDhJR3C3ySNqPDT0fb/c8gv1oP5ISHsv89u4e0v3kxTEj3\nyb/iH2Qe3furYnm/Gt0mH98oIWX/1ukg9eieb8sm79f7t2ejTe7xZV5b6IaQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQelPK613ZPB7e\nf7opN0+Nx8OBkHpTyqa82Zd0u3+n3LYeETsh9eetnO3uqdzsdr/K5mX3sim/Wg8JIfWnlP8d\nHne7u/L89t6zp6QMhNSbUn4/vr/3+w+asgi9EVJKFqE3QkrJIvTmGNLvn5HuGo+InZD6cwzJ\nq3aJCKk3x5CcIyUipN58Cmn3tPGbDUkICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQL8H5sEkT1X9RA0AAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "0db236b1", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAaE0lEQVR4nO3d63LeRrIsUFD3I1ki3/9pt6SxtrWPjYHBTnxINNb6QdOe\nYFVFMzM4shQzywswbDn7AJiBIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAInFly4joIclh8GDL/3s9RYI/\nKRIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEXL9I394vTx9fXj69WZ4+JA+CHS5fpOen5btPH398XN4m\nL4J/7/JF+rB8/zn04Wl5//zy/PNzOMHli/T08wuX5fnnX55i98Aely/Ssvz18ddf/s9//JvX\nX8eslhG/z7l6kZ5+K9Lzf/+JpEj8TaoAly/Sr18jfXj+8/P8CiamSH/a8W/tFIm/UaRf/v3v\nIykSf6NIlSu4GkWqXMHVKFLlCq5GkSpXcDWKVLmCq1GkyhVcjSJVruBqFKlyBVejSJUruBpF\nqlzB1ShS5QquRpEqV3A1ilS5gqtRpMoVXI0iVa7gahSpcgVXo0iVK7gaRapcwdUoUuUKrkaR\n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\niYP2zBmmSKE5dTFx0J45wxQpNKcuJg7aM2eYIoXm1MXEQXvmDFOk0Jy6mDhoz5xhihSaUxcT\nB+2ZM0yRQnPqYuKgPXOGKVJoTl1MHLRnzjBFCs2pi4mD9swZdmaRliG/Dyr4rtTFxEF75gw7\ntUgDj1D3XXHQ5Q5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiR\njnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQ\nrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU6\n6jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3\nOkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo\n13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93q\nIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe\n00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuD\nFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpN\nB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qoJIi/fHx3fLDuw9/vHLFVN8V\nB13uoIoiPb9Z/vL2dSum+q446HIHVRTpw/L0+evPz759eVo+vGrFVN8VB13uoIoiPS1f//fz\nr8vTq1ZM9V1x0OUOqijSsqz9zZ//5DfrM0akBjnotgetBfM1HvATCeY38GukL99+frb5aySY\n36t/vL397Ufkm+fkSXA9A7+P9OHn7yM9vfu48ftIML8H/MkGmJ8iQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiXc2yfHu3PH38+fmnN8ubTyffw0+KdDXL8rR896NJb398srw9+yJeFOl6\nvjfn+eXT8ubl5fPy9PXl69Py+eyTUKTrWZY/fn58eXm3fPn+2Rc/khoo0tUsy6+P//ns1184\nlW/C1ShSJd+Eq1GkSr4JV/NXkX79GundyRfxokjX81eR/Fu7Iop0NX8Vye8jFVGkq/mtSC+f\nnvzJhhKKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGK\nBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAH/Ayzv44rlEgIU\nAAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "barplot(df$A, ylab = 'A',xlab = 'no')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "37d719c4", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "R", - "language": "R", - "name": "ir" - }, - "language_info": { - "codemirror_mode": "r", - "file_extension": ".r", - "mimetype": "text/x-r-source", - "name": "R", - "pygments_lexer": "r", - "version": "4.1.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From 4b71d144aee60cc8b25cec3dcf55dc432dc39dca Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Sat, 9 Oct 2021 21:16:52 -0700 Subject: [PATCH 15/30] Create pandas.ipynb --- 2-Working-With-Data/R/pandas.ipynb | 978 +++++++++++++++++++++++++++++ 1 file changed, 978 insertions(+) create mode 100644 2-Working-With-Data/R/pandas.ipynb diff --git a/2-Working-With-Data/R/pandas.ipynb b/2-Working-With-Data/R/pandas.ipynb new file mode 100644 index 00000000..cb928833 --- /dev/null +++ b/2-Working-With-Data/R/pandas.ipynb @@ -0,0 +1,978 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "304296e3", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "Attaching package: 'dplyr'\n", + "\n", + "\n", + "The following objects are masked from 'package:stats':\n", + "\n", + " filter, lag\n", + "\n", + "\n", + "The following objects are masked from 'package:base':\n", + "\n", + " intersect, setdiff, setequal, union\n", + "\n", + "\n", + "-- \u001b[1mAttaching packages\u001b[22m ------------------------------------------------------------------------------- tidyverse 1.3.1 --\n", + "\n", + "\u001b[32mv\u001b[39m \u001b[34mggplot2\u001b[39m 3.3.5 \u001b[32mv\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.4\n", + "\u001b[32mv\u001b[39m \u001b[34mtibble \u001b[39m 3.1.5 \u001b[32mv\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n", + "\u001b[32mv\u001b[39m \u001b[34mtidyr \u001b[39m 1.1.4 \u001b[32mv\u001b[39m \u001b[34mforcats\u001b[39m 0.5.1\n", + "\u001b[32mv\u001b[39m \u001b[34mreadr \u001b[39m 2.0.2 \n", + "\n", + "-- \u001b[1mConflicts\u001b[22m ---------------------------------------------------------------------------------- tidyverse_conflicts() --\n", + "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n", + "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n", + "\n" + ] + } + ], + "source": [ + "library(dplyr)\n", + "library(tidyverse)" + ] + }, + { + "cell_type": "markdown", + "id": "d786e051", + "metadata": {}, + "source": [ + "## Series" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f659f553", + "metadata": {}, + "outputs": [], + "source": [ + "a<- 1:9" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "9acc193d", + "metadata": {}, + "outputs": [], + "source": [ + "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f577ec14", + "metadata": {}, + "outputs": [], + "source": [ + "a1 = length(a)\n", + "b1 = length(b)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "31e069a0", + "metadata": {}, + "outputs": [], + "source": [ + "a = data.frame(a,row.names = c(1:a1))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "29ce166e", + "metadata": {}, + "outputs": [], + "source": [ + "b = data.frame(b,row.names = c(1:b1))" + ] + }, + { + "cell_type": "markdown", + "id": "945feffd", + "metadata": {}, + "source": [ + "## DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "88a435ec", + "metadata": {}, + "outputs": [], + "source": [ + "a = data.frame(a,row.names = c(1:a1))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c4e2a6c1", + "metadata": {}, + "outputs": [], + "source": [ + "b = data.frame(b,row.names = c(1:b1))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "2bb5177c", + "metadata": {}, + "outputs": [], + "source": [ + "df<- data.frame(a,b)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "8f45d3a5", + "metadata": {}, + "outputs": [], + "source": [ + "df = \n", + " rename(df,\n", + " A = a,\n", + " B = b,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "0efbf2d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" + ], + "text/latex": [ + "A data.frame: 9 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like \\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\t5 & 5 & Python\\\\\n", + "\t6 & 6 & and \\\\\n", + "\t7 & 7 & Pandas\\\\\n", + "\t8 & 8 & very \\\\\n", + "\t9 & 9 & much \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "| 5 | 5 | Python |\n", + "| 6 | 6 | and |\n", + "| 7 | 7 | Pandas |\n", + "| 8 | 8 | very |\n", + "| 9 | 9 | much |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like \n", + "3 3 to \n", + "4 4 use \n", + "5 5 Python\n", + "6 6 and \n", + "7 7 Pandas\n", + "8 8 very \n", + "9 9 much " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "88b51fdc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column A (series):\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" + ], + "text/latex": [ + "A data.frame: 9 × 1\n", + "\\begin{tabular}{r|l}\n", + " & A\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t1 & 1\\\\\n", + "\t2 & 2\\\\\n", + "\t3 & 3\\\\\n", + "\t4 & 4\\\\\n", + "\t5 & 5\\\\\n", + "\t6 & 6\\\\\n", + "\t7 & 7\\\\\n", + "\t8 & 8\\\\\n", + "\t9 & 9\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 1\n", + "\n", + "| | A <int> |\n", + "|---|---|\n", + "| 1 | 1 |\n", + "| 2 | 2 |\n", + "| 3 | 3 |\n", + "| 4 | 4 |\n", + "| 5 | 5 |\n", + "| 6 | 6 |\n", + "| 7 | 7 |\n", + "| 8 | 8 |\n", + "| 9 | 9 |\n", + "\n" + ], + "text/plain": [ + " A\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 4\n", + "5 5\n", + "6 6\n", + "7 7\n", + "8 8\n", + "9 9" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cat(\"Column A (series):\\n\")\n", + "select(df,'A')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "010bcba8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" + ], + "text/latex": [ + "A data.frame: 4 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like\\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 4 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like\n", + "3 3 to \n", + "4 4 use " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A<5,]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "082277db", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\n", + "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" + ], + "text/latex": [ + "A data.frame: 1 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t6 & 6 & and\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 1 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 6 | 6 | and |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "6 6 and" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A>5 & df$A<7,]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "0bbd19f8", + "metadata": {}, + "outputs": [], + "source": [ + "df$DivA <- df$A - mean(df$A)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f36d96af", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" + ], + "text/latex": [ + "A data.frame: 9 × 3\n", + "\\begin{tabular}{r|lll}\n", + " & A & B & DivA\\\\\n", + " & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4\\\\\n", + "\t2 & 2 & like & -3\\\\\n", + "\t3 & 3 & to & -2\\\\\n", + "\t4 & 4 & use & -1\\\\\n", + "\t5 & 5 & Python & 0\\\\\n", + "\t6 & 6 & and & 1\\\\\n", + "\t7 & 7 & Pandas & 2\\\\\n", + "\t8 & 8 & very & 3\\\\\n", + "\t9 & 9 & much & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 3\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> |\n", + "|---|---|---|---|\n", + "| 1 | 1 | I | -4 |\n", + "| 2 | 2 | like | -3 |\n", + "| 3 | 3 | to | -2 |\n", + "| 4 | 4 | use | -1 |\n", + "| 5 | 5 | Python | 0 |\n", + "| 6 | 6 | and | 1 |\n", + "| 7 | 7 | Pandas | 2 |\n", + "| 8 | 8 | very | 3 |\n", + "| 9 | 9 | much | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA\n", + "1 1 I -4 \n", + "2 2 like -3 \n", + "3 3 to -2 \n", + "4 4 use -1 \n", + "5 5 Python 0 \n", + "6 6 and 1 \n", + "7 7 Pandas 2 \n", + "8 8 very 3 \n", + "9 9 much 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c67f2bd0", + "metadata": {}, + "outputs": [], + "source": [ + "df$LenB <- str_length(df$B)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "cef214b2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" + ], + "text/latex": [ + "A data.frame: 9 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\t7 & 7 & Pandas & 2 & 6\\\\\n", + "\t8 & 8 & very & 3 & 4\\\\\n", + "\t9 & 9 & much & 4 & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "| 7 | 7 | Pandas | 2 | 6 |\n", + "| 8 | 8 | very | 3 | 4 |\n", + "| 9 | 9 | much | 4 | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 \n", + "7 7 Pandas 2 6 \n", + "8 8 very 3 4 \n", + "9 9 much 4 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "59fe5316", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" + ], + "text/latex": [ + "A data.frame: 5 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 5 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[0:5,]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "f944a949", + "metadata": {}, + "outputs": [], + "source": [ + " df1 = group_by(df,LenB)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "8ffd39cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 2
LenBmymean
<int><dbl>
11
22
33
44
66
\n" + ], + "text/latex": [ + "A tibble: 5 × 2\n", + "\\begin{tabular}{ll}\n", + " LenB & mymean\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t 1 & 1\\\\\n", + "\t 2 & 2\\\\\n", + "\t 3 & 3\\\\\n", + "\t 4 & 4\\\\\n", + "\t 6 & 6\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 2\n", + "\n", + "| LenB <int> | mymean <dbl> |\n", + "|---|---|\n", + "| 1 | 1 |\n", + "| 2 | 2 |\n", + "| 3 | 3 |\n", + "| 4 | 4 |\n", + "| 6 | 6 |\n", + "\n" + ], + "text/plain": [ + " LenB mymean\n", + "1 1 1 \n", + "2 2 2 \n", + "3 3 3 \n", + "4 4 4 \n", + "5 6 6 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "summarise(df1,mymean =mean(LenB))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b859950", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "5d3f0287", + "metadata": {}, + "source": [ + "## Printing and Plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "69946dc7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Warning message in file(file, \"rt\"):\n", + "\"cannot open file 'file name': No such file or directory\"\n" + ] + }, + { + "ename": "ERROR", + "evalue": "Error in file(file, \"rt\"): cannot open the connection\n", + "output_type": "error", + "traceback": [ + "Error in file(file, \"rt\"): cannot open the connection\nTraceback:\n", + "1. read.csv(\"file name\")", + "2. read.table(file = file, header = header, sep = sep, quote = quote, \n . dec = dec, fill = fill, comment.char = comment.char, ...)", + "3. file(file, \"rt\")" + ] + } + ], + "source": [ + "dataset = read.csv(\"file name\")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "009af652", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" + ], + "text/latex": [ + "A data.frame: 6 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 6 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "head(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "515c95b2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVuklEQVR4nO3djVYbuxWAUZn/ULDf/22LDYm5CQbbc0Y6kvZeC4c2C0Yj6cNg\n0absgMVK6wHACIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEASqEVKAzV+zy+HAaXAIiCQkCCAkCCAkCCAkC\nCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAnO9c3/olxIcJ5DRadS\nEhKcp3x6PPGXV3y+VQmJdMpff379t1d8whUJiXTKp7ev//aKT7gyIZFO+diXQoIlyjcdCQnO\n5FU7WGxfkHMkWOanLSkk+NmPO1JI8KOfN6SQ4Cdn7EchwQ/O2Y5Cgu+dtRuFBN86bzMKCb5x\n7r9pKSQ47eydKCQ46fyNKCQ45YJ9KCQ44ZJtKCT42kW7UEjwpcs2oZDgKxfuQSHBv849Pjp+\nwBXXuPxDEl4CTrt8AwoJ/lanCiExtmu2n5Dgv67afUKC/7hu8wkJPrty7wkJPrl26wkJ/rj4\n+Oj4kVU+JOEl4B8L9p2Q4MOSbSckeLdo1wkJDpZtOiHB3sI9JyTYLd9yQoIFL3v/+QxVPiTh\nJeCPgP0mJKYXsd2ExOxCdpuQmFzMZhMScwvaa0JialFbTUjMLGynCYl5LT8+On6qKh+S8BIQ\nuc2ExKxCd5mQmFTsJhMScwreY0JiStFbTEjMKHyHCYkJxW8wITGdwOOj4+es8iEJL8G0Vtld\nQmIy62wuITGXlfaWkJjKWltLSMxktZ0lJCay3sYSEvNYcV8JiVmscXx0/ORVPiThJZjNuptK\nSMxh5T0lJKaw9pYSEjNYfUcJiQmsv6GExPhybtmco4JTamynmiG93pfN4273dFM2DytdAj4p\n+6OjVY+Pjpeq8iEH283bfZWnx/1juV3lEnB0KKhORlVDeihvz0MPm3K/3W0P78dfAo4Ou2jA\nkDYfN7Y9/LFZ4xLwR/l4qLOZKoZUPn+F+PcLRfnsykvAH+XTW52rrf8hB5tPIW09I7GycnxS\nqnO1Ch9y8PtnpIftx/vxl4CjUrEjr9oxrFFftXOOREXvR0jVdpLfbGBItbeQkBhR9R0kJAZU\nfwMJifE02D9CYjgtto+QGE2T3SMkBtNm8wiJsTTaO0JiJM1+31lIDKTdxhES42i4b4TEMFpu\nGyExiqa7RkgMou2mERJjaLxnhMQQWm8ZITGC5jtGSPQvwf/tlJDoXobtIiR6l2K3CInO5dgs\nQqJvSfaKkOhalq0iJHqWZqcIiY7l2ShCol+J9omQ6FWCY9gjIdGpXJtESPQp2R4REl3KtkWE\nRI/S7RAh0aF8G0RI9Cfh/hAS3cm4PYREb1LuDiHRl1THsEdCoitZt4aQ6EnanSEkOpJ3YwiJ\nfiTeF0KiG5m3hZDoRepdISQ6kXtTCIk+JN8TQqIHSY9hj4REB/JvCCGRXwf7QUik18N2EBLZ\ndbEbhERyfWwGIZFbJ3tBSKTWy1YQEpl1sxOERF7pj2GPhERaPW0DIZFVV7tASCTV1yYQEjl1\ntgeEREq9bQEhkVF3O0BIJNTfBhAS+XS4/kIim46OYY+ERB5l31Cfiy8ksjg8E3X5dLQTEnkc\nVl1IkTqdTJYoHw99Lr6QSKJ8euuPkEiiHJ+UOiQksigddyQk0vCqXbhOJ5MFDkdIvWYkJJLo\nfcmFRAbdr7iQSKD/BRcS7Q2w3kKiuRGWW0i0NsRqC4nGxlhsIdHWIGstJFrq9wT2L0KioXEW\nWki0M9A6C4lmRlpmIdHKUKssJBoZa5GFRBuDrbGQaGK0JRYSLQy3wkKivmGOYY+ERHUjLq+Q\nqG3I1RUSlY25uEKirkHXVkhUNerSComahl1ZIVHRuAsrJOoZeF2FRC0DHsMeCYlKxl5UIVHH\n4GsqJKoYfUmFRA3Dr6iQqGD8BRUS65tgPYXE6mZYTiGxtilWU0isa+hj2CMhsapZllJIrGma\nlRQSK5pnIYXEeiZaRyGxmpmWUUisZapVFBIrmWsRhcQ6JltDIbGGSY5hj4TECuZbQCERb8L1\nExLhZlw+IRFtytUTEsHmXDwhEWvStRMSoWZdOiERadqVExJxpjuGPRISYWZeNiERZepVExJB\n5l40IRFj8jUTEiFmXzIhEWH6FRMSASyYkFjOegmJxSY+hj2qGdL2YfP2+HhTyu2vlS5BVWXf\nkMXaqxjS6+Zt2rdvD3u3q1yCmg7PRJ6O3lUM6b7cbd8e7l/fmrovD2tcgpoOqySkdxVDKmX7\n8fD2XV7ZrHEJKiofDxZrr2pIbw+b8uk//PXXn1x5CSoqn96o+q3dy273uH/YPyN9+0OStelA\nOT4pUTOkl7J5eNndbd5Ker4pz2tcgpqKjo5qvvz9vDl+7/a4ziWoyKt2n9Q9kP11f7Ov6O7x\ndbVLUMnhCElGv/nNBq5iif5LSFzDCv1FSFzBAv1NSFzO+vxDSFzM8vxLSFzK6nxBSFzI4nxF\nSFzEydHXhMQlrMwJQuICFuYUIXE+63KSkDibZTlNSJzLqnxDSJzJonxHSJzHmnxLSJzD8dEP\nhMQZLMhPhMTPrMePhMSPLMfPhMRPrMYZhMQPLMY5hMT3rMVZhMS3LMV5hMQ3HB+dS0icZh3O\nJiROsgznExKnWIULCIkTLMIlhMTXrMFFhMSXLMFlhMQXvOx9KSHxL/N/MSHxD9N/OSHxN7N/\nBSHxF5N/DSHxX+b+KkLiP0z9dYTEZ2b+SkLiyPHR1YTEH6b9ekLiN7O+gJD4YNKXEBLvzPki\nQuLAlC8jJPbM+EJCYmfClxMSjo8CCAmzHUBI0zPZEYQ0O3MdQkiTM9UxhDQ3Mx1ESFMz0VGE\nNDPzHEZI83J8FEhI0zLJkYQ0K3McSkiTMsWxhDQnMxxMSFMywdGCQnp52Cweyg+XII75DRcR\n0uvjTSlC6ofpjbc4pO2vt4rK7XPQeL66BFHK/ujI8dEaFob067bsvYaN599LEOVQkIzWsSSk\n5/u3hjYPL/FrY7HXcJhVIa1jQUibfUX/262xNhZ7BeXjweSuYUFIpTz8fidsOH9dgkDl0xvR\nPCNNoxyflAgX8DPS/4TUh6Kj9XjVbh5etVtR0DnSnXOk7N6PkMzsSvxmwyRM6br8rt0czOjK\n/Pb3FEzo2oQ0A/O5OiFNwHSuT0jjM5sVCGl4JrMGIY3OXFYhpLE5ga1ESEMzkbUIaWTmsRoh\n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\n+fQU0uGZyNMRGXUV0uFBSCTUUUjl40FJ5NNZSOXUX0JTnYVU6fpwoY5C+vhvdURCXYXkVTuy\n6imkj3MkyKevkCApIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEA\nIUEAIUEAIUGApCFBZ67Y5fHhNJP9XoxvmdTjSz24C2W/F+NbJvX4Ug/uQtnvxfiWST2+1IO7\nUPZ7Mb5lUo8v9eAulP1ejG+Z1ONLPbgLZb8X41sm9fhSD+5C2e/F+JZJPb7Ug7tQ9nsxvmVS\njy/14C6U/V6Mb5nU40s9uAtlvxfjWyb1+FIP7kLZ78X4lkk9vtSDu1D2ezG+ZVKPL/XgoBdC\nggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggDDhPR0UzYP29aj\n+Nb/Mk/2y30p96+tR3HS9mGTe30zr+0lHg7/iMAm8UzvtpvEk/2ce/5eN+/jy1t64rW9xEu5\nf9sDT+W+9UC+cXfNvxZSy2bzstvelYfW4zjh/jCyh8Trm3htL3H3fh+Zt+qvq/7ZnUp+HTbq\ntmxaD+SEkn59847sGokn+rXcJh7dfXlpPYRvfXxXnDb0wULaltvWQzjptrwmDumm7B43h2+P\nc3r8+NbusfVATsq7tld4Ks+th3DKY/mV+fmylLvDD/Otx3HS0/7Vhs1T62GclndtL/e6uWs9\nhFNeyl3qbzzfNunLbnuf9yv+4+FVu7TDGyqk7SbvN3Y3+xeWU4e0/xnptdy0HsgJT/tv7d5C\nz/uUlHdtL3abdRfsf5bff8+ZOqTPf+RzU/Y/vm3Thj5QSK83t4lP6xb8u/NVZD8+yB76OCE9\nJ37BroOQHg9Pma9pJ/H95e+851zDhJR3C3ySNqPDT0fb/c8gv1oP5ISHsv89u4e0v3kxTEj3\nyb/iH2Qe3furYnm/Gt0mH98oIWX/1ukg9eieb8sm79f7t2ejTe7xZV5b6IaQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQelPK613ZPB7e\nf7opN0+Nx8OBkHpTyqa82Zd0u3+n3LYeETsh9eetnO3uqdzsdr/K5mX3sim/Wg8JIfWnlP8d\nHne7u/L89t6zp6QMhNSbUn4/vr/3+w+asgi9EVJKFqE3QkrJIvTmGNLvn5HuGo+InZD6cwzJ\nq3aJCKk3x5CcIyUipN58Cmn3tPGbDUkICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQL8H5sEkT1X9RA0AAAAAElFTkSuQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 420, + "width": 420 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "41b872c9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAaE0lEQVR4nO3d63LeRrIsUFD3I1ki3/9pt6SxtrWPjYHBTnxINNb6QdOe\nYFVFMzM4shQzywswbDn7AJiBIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAInFly4joIclh8GDL/3s9RYI/\nKRIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEXL9I394vTx9fXj69WZ4+JA+CHS5fpOen5btPH398XN4m\nL4J/7/JF+rB8/zn04Wl5//zy/PNzOMHli/T08wuX5fnnX55i98Aely/Ssvz18ddf/s9//JvX\nX8eslhG/z7l6kZ5+K9Lzf/+JpEj8TaoAly/Sr18jfXj+8/P8CiamSH/a8W/tFIm/UaRf/v3v\nIykSf6NIlSu4GkWqXMHVKFLlCq5GkSpXcDWKVLmCq1GkyhVcjSJVruBqFKlyBVejSJUruBpF\nqlzB1ShS5QquRpEqV3A1ilS5gqtRpMoVXI0iVa7gahSpcgVXo0iVK7gaRapcwdUoUuUKrkaR\n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\niYP2zBmmSKE5dTFx0J45wxQpNKcuJg7aM2eYIoXm1MXEQXvmDFOk0Jy6mDhoz5xhihSaUxcT\nB+2ZM0yRQnPqYuKgPXOGKVJoTl1MHLRnzjBFCs2pi4mD9swZdmaRliG/Dyr4rtTFxEF75gw7\ntUgDj1D3XXHQ5Q5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiR\njnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQ\nrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU6\n6jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3\nOkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo\n13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93q\nIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe\n00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuD\nFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpN\nB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qoJIi/fHx3fLDuw9/vHLFVN8V\nB13uoIoiPb9Z/vL2dSum+q446HIHVRTpw/L0+evPz759eVo+vGrFVN8VB13uoIoiPS1f//fz\nr8vTq1ZM9V1x0OUOqijSsqz9zZ//5DfrM0akBjnotgetBfM1HvATCeY38GukL99+frb5aySY\n36t/vL397Ufkm+fkSXA9A7+P9OHn7yM9vfu48ftIML8H/MkGmJ8iQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiXc2yfHu3PH38+fmnN8ubTyffw0+KdDXL8rR896NJb398srw9+yJeFOl6\nvjfn+eXT8ubl5fPy9PXl69Py+eyTUKTrWZY/fn58eXm3fPn+2Rc/khoo0tUsy6+P//ns1184\nlW/C1ShSJd+Eq1GkSr4JV/NXkX79GundyRfxokjX81eR/Fu7Iop0NX8Vye8jFVGkq/mtSC+f\nnvzJhhKKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGK\nBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAH/Ayzv44rlEgIU\nAAAAAElFTkSuQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 420, + "width": 420 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "barplot(df$A, ylab = 'A',xlab = 'no')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11001454", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "670db495", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "4.1.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 5eb0795db32f92be987082cd1bfaaf063609790f Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sun, 10 Oct 2021 21:25:51 -0500 Subject: [PATCH 16/30] Revert "feat: Module 1 section 4 - Add file content to be translated" This reverts commit def34abe88b682ab5faa37ebee9cbbc4897633cf. --- .../translations/README.es.md | 263 ------------------ 1 file changed, 263 deletions(-) diff --git a/1-Introduction/04-stats-and-probability/translations/README.es.md b/1-Introduction/04-stats-and-probability/translations/README.es.md index 3a4a4ae9..e69de29b 100644 --- a/1-Introduction/04-stats-and-probability/translations/README.es.md +++ b/1-Introduction/04-stats-and-probability/translations/README.es.md @@ -1,263 +0,0 @@ -# A Brief Introduction to Statistics and Probability - -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/04-Statistics-Probability.png)| -|:---:| -| Statistics and Probability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | - -Statistics and Probability Theory are two highly related areas of Mathematics that are highly relevant to Data Science. It is possible to operate with data without deep knowledge of mathematics, but it is still better to know at least some basic concepts. Here we will present a short introduction that will help you get started. - -[![Intro Video](images/video-prob-and-stats.png)](https://youtu.be/Z5Zy85g4Yjw) - - -## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/6) - -## Probability and Random Variables - -**Probability** is a number between 0 and 1 that expresses how probable an **event** is. It is defined as a number of positive outcomes (that lead to the event), divided by total number of outcomes, given that all outcomes are equally probable. For example, when we roll a dice, the probability that we get an even number is 3/6 = 0.5. - -When we talk about events, we use **random variables**. For example, the random variable that represents a number obtained when rolling a dice would take values from 1 to 6. Set of numbers from 1 to 6 is called **sample space**. We can talk about the probability of a random variable taking a certain value, for example P(X=3)=1/6. - -The random variable in previous example is called **discrete**, because it has a countable sample space, i.e. there are separate values that can be enumerated. There are cases when sample space is a range of real numbers, or the whole set of real numbers. Such variables are called **continuous**. A good example is the time when the bus arrives. - -## Probability Distribution - -In the case of discrete random variables, it is easy to describe the probability of each event by a function P(X). For each value *s* from sample space *S* it will give a number from 0 to 1, such that the sum of all values of P(X=s) for all events would be 1. - -The most well-known discrete distribution is **uniform distribution**, in which there is a sample space of N elements, with equal probability of 1/N for each of them. - -It is more difficult to describe the probability distribution of a continuous variable, with values drawn from some interval [a,b], or the whole set of real numbers ℝ. Consider the case of bus arrival time. In fact, for each exact arrival time $t$, the probability of a bus arriving at exactly that time is 0! - -> Now you know that events with 0 probability happen, and very often! At least each time when the bus arrives! - -We can only talk about the probability of a variable falling in a given interval of values, eg. P(t1≤X<t2). In this case, probability distribution is described by a **probability density function** p(x), such that - -![P(t_1\le X1, x2, ..., xn. We can define **mean** (or **arithmetic average**) value of the sequence in the traditional way as (x1+x2+xn)/n. As we grow the size of the sample (i.e. take the limit with n→∞), we will obtain the mean (also called **expectation**) of the distribution. We will denote expectation by **E**(x). - -> It can be demonstrated that for any discrete distribution with values {x1, x2, ..., xN} and corresponding probabilities p1, p2, ..., pN, the expectation would equal to E(X)=x1p1+x2p2+...+xNpN. - -To identify how far the values are spread, we can compute the variance σ2 = ∑(xi - μ)2/n, where μ is the mean of the sequence. The value σ is called **standard deviation**, and σ2 is called a **variance**. - -## Mode, Median and Quartiles - -Sometimes, mean does not adequately represent the "typical" value for data. For example, when there are a few extreme values that are completely out of range, they can affect the mean. Another good indication is a **median**, a value such that half of data points are lower than it, and another half - higher. - -To help us understand the distribution of data, it is helpful to talk about **quartiles**: - -* First quartile, or Q1, is a value, such that 25% of the data fall below it -* Third quartile, or Q3, is a value that 75% of the data fall below it - -Graphically we can represent relationship between median and quartiles in a diagram called the **box plot**: - - - -Here we also compute **inter-quartile range** IQR=Q3-Q1, and so-called **outliers** - values, that lie outside the boundaries [Q1-1.5*IQR,Q3+1.5*IQR]. - -For finite distribution that contains a small number of possible values, a good "typical" value is the one that appears the most frequently, which is called **mode**. It is often applied to categorical data, such as colors. Consider a situation when we have two groups of people - some that strongly prefer red, and others who prefer blue. If we code colors by numbers, the mean value for a favorite color would be somewhere in the orange-green spectrum, which does not indicate the actual preference on neither group. However, the mode would be either one of the colors, or both colors, if the number of people voting for them is equal (in this case we call the sample **multimodal**). -## Real-world Data - -When we analyze data from real life, they often are not random variables as such, in a sense that we do not perform experiments with unknown result. For example, consider a team of baseball players, and their body data, such as height, weight and age. Those numbers are not exactly random, but we can still apply the same mathematical concepts. For example, a sequence of people's weights can be considered to be a sequence of values drawn from some random variable. Below is the sequence of weights of actual baseball players from [Major League Baseball](http://mlb.mlb.com/index.jsp), taken from [this dataset](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) (for your convenience, only first 20 values are shown): - -``` -[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] -``` - -> **Note**: To see the example of working with this dataset, have a look at the [accompanying notebook](notebook.ipynb). There are also a number of challenges throughout this lesson, and you may complete them by adding some code to that notebook. If you are not sure how to operate on data, do not worry - we will come back to working with data using Python at a later time. If you do not know how to run code in Jupyter Notebook, have a look at [this article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). - -Here is the box plot showing mean, median and quartiles for our data: - -![Weight Box Plot](images/weight-boxplot.png) - -Since our data contains information about different player **roles**, we can also do the box plot by role - it will allow us to get the idea on how parameters values differ across roles. This time we will consider height: - -![Box plot by role](images/boxplot_byrole.png) - -This diagram suggests that, on average, height of first basemen is higher that height of second basemen. Later in this lesson we will learn how we can test this hypothesis more formally, and how to demonstrate that our data is statistically significant to show that. - -> When working with real-world data, we assume that all data points are samples drawn from some probability distribution. This assumption allows us to apply machine learning techniques and build working predictive models. - -To see what the distribution of our data is, we can plot a graph called a **histogram**. X-axis would contain a number of different weight intervals (so-called **bins**), and the vertical axis would show the number of times our random variable sample was inside a given interval. - -![Histogram of real world data](images/weight-histogram.png) - -From this histogram you can see that all values are centered around certain mean weight, and the further we go from that weight - the fewer weights of that value are encountered. I.e., it is very improbable that the weight of a baseball player would be very different from the mean weight. Variance of weights show the extent to which weights are likely to differ from the mean. - -> If we take weights of other people, not from the baseball league, the distribution is likely to be different. However, the shape of the distribution will be the same, but mean and variance would change. So, if we train our model on baseball players, it is likely to give wrong results when applied to students of a university, because the underlying distribution is different. -## Normal Distribution - -The distribution of weights that we have seen above is very typical, and many measurements from real world follow the same type of distribution, but with different mean and variance. This distribution is called **normal distribution**, and it plays a very important role in statistics. - -Using normal distribution is a correct way to generate random weights of potential baseball players. Once we know mean weight `mean` and standard deviation `std`, we can generate 1000 weight samples in the following way: -```python -samples = np.random.normal(mean,std,1000) -``` - -If we plot the histogram of the generated samples we will see the picture very similar to the one shown above. And if we increase the number of samples and the number of bins, we can generate a picture of a normal distribution that is more close to ideal: - -![Normal Distribution with mean=0 and std.dev=1](images/normal-histogram.png) - -*Normal Distribution with mean=0 and std.dev=1* - -## Confidence Intervals - -When we talk about weights of baseball players, we assume that there is certain **random variable W** that corresponds to ideal probability distribution of weights of all baseball players (so-called **population**). Our sequence of weights corresponds to a subset of all baseball players that we call **sample**. An interesting question is, can we know the parameters of distribution of W, i.e. mean and variance of the population? - -The easiest answer would be to calculate mean and variance of our sample. However, it could happen that our random sample does not accurately represent complete population. Thus it makes sense to talk about **confidence interval**. - -> **Confidence interval** is the estimation of true mean of the population given our sample, which is accurate is a certain probability (or **level of confidence**). - -Suppose we have a sample X1, ..., Xn from our distribution. Each time we draw a sample from our distribution, we would end up with different mean value μ. Thus μ can be considered to be a random variable. A **confidence interval** with confidence p is a pair of values (Lp,Rp), such that **P**(Lp≤μ≤Rp) = p, i.e. a probability of measured mean value falling within the interval equals to p. - -It does beyond our short intro to discuss in detail how those confidence intervals are calculated. Some more details can be found [on Wikipedia](https://en.wikipedia.org/wiki/Confidence_interval). In short, we define the distribution of computed sample mean relative to the true mean of the population, which is called **student distribution**. - -> **Interesting fact**: Student distribution is named after mathematician William Sealy Gosset, who published his paper under the pseudonym "Student". He worked in the Guinness brewery, and, according to one of the versions, his employer did not want general public to know that they were using statistical tests to determine the quality of raw materials. - -If we want to estimate the mean μ of our population with confidence p, we need to take *(1-p)/2-th percentile* of a Student distribution A, which can either be taken from tables, or computer using some built-in functions of statistical software (eg. Python, R, etc.). Then the interval for μ would be given by X±A*D/√n, where X is the obtained mean of the sample, D is the standard deviation. - -> **Note**: We also omit the discussion of an important concept of [degrees of freedom](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)), which is important in relation to Student distribution. You can refer to more complete books on statistics to understand this concept deeper. - -An example of calculating confidence interval for weights and heights is given in the [accompanying notebooks](notebook.ipynb). - -| p | Weight mean | -|-----|-----------| -| 0.85 | 201.73±0.94 | -| 0.90 | 201.73±1.08 | -| 0.95 | 201.73±1.28 | - -Notice that the higher is the confidence probability, the wider is the confidence interval. - -## Hypothesis Testing - -In our baseball players dataset, there are different player roles, that can be summarized below (look at the [accompanying notebook](notebook.ipynb) to see how this table can be calculated): - -| Role | Height | Weight | Count | -|------|--------|--------|-------| -| Catcher | 72.723684 | 204.328947 | 76 | -| Designated_Hitter | 74.222222 | 220.888889 | 18 | -| First_Baseman | 74.000000 | 213.109091 | 55 | -| Outfielder | 73.010309 | 199.113402 | 194 | -| Relief_Pitcher | 74.374603 | 203.517460 | 315 | -| Second_Baseman | 71.362069 | 184.344828 | 58 | -| Shortstop | 71.903846 | 182.923077 | 52 | -| Starting_Pitcher | 74.719457 | 205.163636 | 221 | -| Third_Baseman | 73.044444 | 200.955556 | 45 | - -We can notice that the mean heights of first basemen is higher than that of second basemen. Thus, we may be tempted to conclude that **first basemen are higher than second basemen**. - -> This statement is called **a hypothesis**, because we do not know whether the fact is actually true or not. - -However, it is not always obvious whether we can make this conclusion. From the discussion above we know that each mean has an associated confidence interval, and thus this difference can just be a statistical error. We need some more formal way to test our hypothesis. - -Let's compute confidence intervals separately for heights of first and second basemen: - -| Confidence | First Basemen | Second Basemen | -|------------|---------------|----------------| -| 0.85 | 73.62..74.38 | 71.04..71.69 | -| 0.90 | 73.56..74.44 | 70.99..71.73 | -| 0.95 | 73.47..74.53 | 70.92..71.81 | - -We can see that under no confidence the intervals overlap. That proves our hypothesis that first basemen are higher than second basemen. - -More formally, the problem we are solving is to see if **two probability distributions are the same**, or at least have the same parameters. Depending on the distribution, we need to use different tests for that. If we know that our distributions are normal, we can apply **[Student t-test](https://en.wikipedia.org/wiki/Student%27s_t-test)**. - -In Student t-test, we compute so-called **t-value**, which indicates the difference between means, taking into account the variance. It is demonstrated that t-value follows **student distribution**, which allows us to get the threshold value for a given confidence level **p** (this can be computed, or looked up in the numerical tables). We then compare t-value to this threshold to approve or reject the hypothesis. - -In Python, we can use the **SciPy** package, which includes `ttest_ind` function (in addition to many other useful statistical functions!). It computes the t-value for us, and also does the reverse lookup of confidence p-value, so that we can just look at the confidence to draw the conclusion. - -For example, our comparison between heights of first and second basemen give us the following results: -```python -from scipy.stats import ttest_ind - -tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) -print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") -``` -``` -T-value = 7.65 -P-value: 9.137321189738925e-12 -``` -In our case, p-value is very low, meaning that there is strong evidence supporting that first basemen are taller. - -There are also different other types of hypothesis that we might want to test, for example: -* To prove that a given sample follows some distribution. In our case we have assumed that heights are normally distributed, but that needs formal statistical verification. -* To prove that a mean value of a sample corresponds to some predefined value -* To compare means of a number of samples (eg. what is the difference in happiness levels among different age groups) - -## Law of Large Numbers and Central Limit Theorem - -One of the reasons why normal distribution is so important is so-called **central limit theorem**. Suppose we have a large sample of independent N values X1, ..., XN, sampled from any distribution with mean μ and variance σ2. Then, for sufficiently large N (in other words, when N→∞), the mean ΣiXi would be normally distributed, with mean μ and variance σ2/N. - -> Another way to interpret the central limit theorem is to say that regardless of distribution, when you compute the mean of a sum of any random variable values you end up with normal distribution. - -From the central limit theorem it also follows that, when N→∞, the probability of the sample mean to be equal to μ becomes 1. This is known as **the law of large numbers**. - -## Covariance and Correlation - -One of the things Data Science does is finding relations between data. We say that two sequences **correlate** when they exhibit the similar behavior at the same time, i.e. they either rise/fall simultaneously, or one sequence rises when another one falls and vice versa. In other words, there seems to be some relation between two sequences. - -> Correlation does not necessarily indicate causal relationship between two sequences; sometimes both variables can depend on some external cause, or it can be purely by chance the two sequences correlate. However, strong mathematical correlation is a good indication that two variables are somehow connected. - - Mathematically, the main concept that shows the relation between two random variables is **covariance**, that is computed like this: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]. We compute the deviation of both variables from their mean values, and then product of those deviations. If both variables deviate together, the product would always be a positive value, that would add up to positive covariance. If both variables deviate out-of-sync (i.e. one falls below average when another one rises above average), we will always get negative numbers, that will add up to negative covariance. If the deviations are not dependent, they will add up to roughly zero. - -The absolute value of covariance does not tell us much on how large the correlation is, because it depends on the magnitude of actual values. To normalize it, we can divide covariance by standard deviation of both variables, to get **correlation**. The good thing is that correlation is always in the range of [-1,1], where 1 indicates strong positive correlation between values, -1 - strong negative correlation, and 0 - no correlation at all (variables are independent). - -**Example**: We can compute correlation between weights and heights of baseball players from the dataset mentioned above: -```python -print(np.corrcoef(weights,heights)) -``` -As a result, we get **correlation matrix** like this one: -``` -array([[1. , 0.52959196], - [0.52959196, 1. ]]) -``` - -> Correlation matrix C can be computed for any number of input sequences S1, ..., Sn. The value of Cij is the correlation between Si and Sj, and diagonal elements are always 1 (which is also self-correlation of Si). - -In our case, the value 0.53 indicates that there is some correlation between weight and height of a person. We can also make the scatter plot of one value against the other to see the relationship visually: - -![Relationship between weight and height](images/weight-height-relationship.png) - -> More examples of correlation and covariance can be found in [accompanying notebook](notebook.ipynb). - -## Conclusion - -In this section, we have learnt: - -* basic statistical properties of data, such as mean, variance, mode and quartiles -* different distributions of random variables, including normal distribution -* how to find correlation between different properties -* how to use sound apparatus of math and statistics in order to prove some hypotheses, -* how to compute confidence intervals for random variable given data sample - -While this is definitely not exhaustive list of topics that exist within probability and statistics, it should be enough to give you a good start into this course. - -## 🚀 Challenge - -Use the sample code in the notebook to test other hypothesis that: -1. First basemen and older that second basemen -2. First basemen and taller than third basemen -3. Shortstops are taller than second basemen - -## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/7) - -## Review & Self Study - -Probability and statistics is such a broad topic that it deserves its own course. If you are interested to go deeper into theory, you may want to continue reading some of the following books: - -1. [Carlos Fernanderz-Granda](https://cims.nyu.edu/~cfgranda/) from New York University has great lecture notes [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (available online) -1. [Peter and Andrew Bruce. Practical Statistics for Data Scientists.](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[sample code in R](https://github.com/andrewgbruce/statistics-for-data-scientists)]. -1. [James D. Miller. Statistics for Data Science](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[sample code in R](https://github.com/PacktPublishing/Statistics-for-Data-Science)] - -## Assignment - -[Small Diabetes Study](assignment.md) - -## Credits - -This lesson has been authored with ♥️ by [Dmitry Soshnikov](http://soshnikov.com) From 1808d332d98e6090323738eba65956a2f48dbe7d Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sun, 10 Oct 2021 21:31:50 -0500 Subject: [PATCH 17/30] fix: (translation): Revert translation on module 1 * revert translations for sections 1 & 2 --- .../translations/README.es.md | 175 ------------ .../02-ethics/translations/README.es.md | 263 ------------------ 2 files changed, 438 deletions(-) diff --git a/1-Introduction/01-defining-data-science/translations/README.es.md b/1-Introduction/01-defining-data-science/translations/README.es.md index 20011f7c..e69de29b 100644 --- a/1-Introduction/01-defining-data-science/translations/README.es.md +++ b/1-Introduction/01-defining-data-science/translations/README.es.md @@ -1,175 +0,0 @@ -# Definiendo la Ciencia de Datos - -|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png)| -|:---:| -|Definiendo la Ciencia de Datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | - ---- - -[![Video definiendo la Ciencia de Datos](images/video-def-ds.png)](https://youtu.be/pqqsm5reGvs) - -## [Examen previo a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) - -## ¿Qué son los Datos? -En nuestra vida diaria, estamos constantemente rodeados por datos. El texto que estás leyendo ahora son datos, -la lista de números telefónicos de tus amigos en tu móvil son datos, también como la hora actual que se muestra en tu reloj. -Como seres humanos, operamos naturalmente con datos, contando el dinero que tenemos o escribiendo cartas a nuestros amigos. - -Sin embargo, los datos se vuelven más críticos con la creación de las computadoras. El rol principal de las computadoras -es realizar cálculos, pero éstas necesitan datos para operar. Por lo cual, necesitamos entender cómo las computadoras -almacenan y procesan los datos. - -Con el surgimiento de internet, el rol de las computadoras como dispositivos para la manipulación de datos incrementó. -Si lo piensas, ahora usamos computadoras mucho más para la comunicación y el procesamiento de datos, en lugar de para hacer cálculos. Cuando escribimos un correo electrónico a un amigo o buscamos alguna información en internet - estamos -creando, almacenando, transmitiendo y manipulando datos. - -> ¿Recuerdas la última vez que usaste una computadora para realmente calcular algo? - -## ¿Qué es Ciencia de Datos? - -En [Wikipedia](https://en.wikipedia.org/wiki/Data_science), se define la **Ciencia de Datos** como *un campo de las ciencias que usa métodos científicos para extraer conocimiento y perspectivas de datos estructurados y no estructurados, y -aplicar el conocimiento y conocimiento práctico de los datos a través de un amplio rango de dominios de aplicación*. - -Ésta definición destaca los siguientes aspectos importantes para la ciencia de datos: - -* El objetivo principal para la ciencia de datos es **extraer conocimiento** de los datos, en otras palabras - **entender** los datos, encontrar relaciones ocultas y construir un **modelo**. -* La ciencia de datos usa **métodos científicos**, como la probabilidad y estadística. De hecho, cuando el término **ciencia de datos** fue usado por primera vez, algunas personas argumentaron que la ciencia de datos era solo un nuevo nombre elegante para estadística. En estos días se ha vuelto evidente que es un campo mucho más amplio. -* El conocimiento obtenido puede ser aplicado para producir **conocimiento práctico**. -* Seremos capace de operar tanto datos **estructurados** y **no estructurados**. Más adelante en el curso discutiremos los diferentes tupos de datos. -* El **dominio de la aplicación** es un concepto importante, y un científico de datos necesita al menos cierta experiencia en el dominio del problema. - -> Otro aspecto importante de la Ciencia de Datos es que esta estudia como los datos son obtenidos, almacenados y operados usando computadoras. Mientras la estadística nos da los fundamentos matemáticos, la ciencia de datos aplica los conceptos matemáticos para realmente extraer conocimiento de los datos. - -Una de las formas (atribuidas a [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) de ver a la ciencia de datos es considerarla como un paradigma separado de la ciencia: -* **Empírica**, en la que confíamos mayormente en observaciones y resultados de experimientos -* **Teórica**, donde surgen nuevos conceptos desde el conocimiento científico existente -* **Computacional**, donde descubrimos nuevos principios basados en algunos experimentos computacionales -* **Dirigidos por datos**, basados en el descubrimiento de relaciones y patrones en los datos - -## Otros campos relacionados - -Ya que los datos son un concepto predominante, la ciencia de datos en sí misma también es un amplio campo, abarcando muchas otras disciplinas relacionadas. - -
-
Bases de datos
-
-La cosa más obvia a considerar es **cómo almacenar** los datos, por ejemplo como estructurarlos de tal formar que se procesen más rápido. Existen distintos tipos de bases de datos que almacenan datos estructurados y no estructurados, los -cuales [consideraremos en este curso] (../../2-Working-With-Data/README.md). -
-
Big Data
-
-Usualmente necesitamos almacenar y procesar enormes cantidades de datos con estructuras relativamente simples. Existen -formas especiales y herramientas para almacenar los datos en una forma distribuida on un clúster de computadoras, y procesarlas eficientemente. -
-
Aprendizaje automático
-
-Una de las formas de entender los datos es **construir un modelo** que será capaz de predecir el resultado deseado. Ser capaz de aprender esos modelos de los datos es el área de estudio del **aprendizaje automático**. Querrás dar un vistazo a nuestro currículum de [Aprendizaje automático para principiantes](https://github.com/microsoft/ML-For-Beginners/) para profundizar en ese campo. -
-
Inteligencia aritifcial
-
-Así como el aprendizaje automático, la inteligencia artificial también depende de los datos, e involucra la construcción de modelos altamente complejos que expondrán un comportamiento similar a un ser humano. Además, los métodos de AI usualmente nos permiten convertir datos no estructurados (por ejemplo, lenguaje natural) en datos estructurados extrayendo conocimiento útil. -
-
Visualización
-
-Cantidades descomunales de datos son incomprensibles para un ser humano, pero una vez que creamos visualizaciones útiles - podemos iniciar haciendo más sentido de los datos, y extrayendo algunas conclusiones. Por lo tanto, es importante conocer diversas formas de visualizar la información - lo cual cubriremos en la [Sección 3](../../3-Data-Visualization/README.md) de nuestro curso. Campos relacionados incluyen **infografías**, e **interacción humano-computadora** en general. -
-
- -## Tipos de datos - -Como ya se ha mencionado - los datos están en todas partes, ¡sólo necesitamos capturarlos en la forma correcta! Es útil distinguir entre datos **estructurados** y **no estructurados**. Los primeros típicamente son representados en una forma bien estructurada, usualmente como una tabla o conunto de tablas, mientras que los últimos es sólo una colección de archivos. Algunas veces podemos hablar de datos **semi-estructurados**, que tienen cierta estructura la cual podría variar mucho. - -| Estructurado | Semi-estructurado | No estructurado | -|------------- |-------------------|-----------------| -| Lista de personas con sus números telefónicos | Páginas de wikipedia con enlaces | Texto de la enciclopedia Británica | -| Temperatura en todas las habitaciones de un edificio a cada minuto por los últimos 20 años | Colección de documentos científicos en formato JSON con autores, fecha de publicación, y resumen | Recurso compartido de archivos con documentos corporativos | -| Datos por edad y género de todas las personas que entrar al edificio | Páginas de internet | Vídeo sin procesar de cámara de vigilancia | - -## Dónde obtener datos - -Hay múltiples fuentes de datos, y ¡sería imposible listarlas todas! Sin embargo, mencionemos algunos de los lugares típicos en dónde obtener datos: - -* **Estructurados** - - **Internet de las cosas**, incluyendo datos de distintos sensore, como sensores de temperatura o presión, proveen muchos datos útiles. Por ejemplo, si una oficina es equipada con sensores IoT, podemos controlar automáticamente la calefacción e iluminación para minimizar costos. - - **Encuestas** que realizamos a los usuarios después de pagar un producto o después de visitar un sitio web. - - **Análisis de comportamiento** podemos, por ejemplo, ayudarnos a entender que tanto profundiza un usuario en un sitio, y cuál es la razón típica por la cual lo deja. -* **No estructurados** - - Los **Textos** pueden ser una fuente rica en conocimiento práctico, empezando por el **sentimiento principal** generalizado, hasta la extracción de palabras clave e incluso algún significado semántico. - - **Imágenes** o **Video**. Un video de una cámara de vigilancia puede ser usado para estimar el tráfico en carretera, e informar a las personas acerca de posibles embotellamientos. - - **Bitácoras** de servidores web pueden ser usadas para entender qué páginas de nuestro sitio son las más visitadas y por cuánto tiempo. -* **Semi-estructurados** - - Grafos de **redes sociales** pueden ser una gran fuente de datos acerca de la la personalidad del usuario y efectividad potencial de difusión de la información. - - Cuando tenemos un conjunto de fotografías de una fiesta, podemos intentar extraer datos de la **dinámica de grupos** construyendo un grafo de personas tomándose fotos unas a otras. - -Conociendo posibles fuentes de datos diversas, puedes intentar pensar en distintos escenarios donde se pueden aplicar técnicas de ciencia de datos para conocer mejor la situación, y mejroar los procesos de negocio. - -## Qué puedes hacer con los datos - -En la ciencia de datos, nos enfocamos en los siguientes pasos del viaje de los datos: - -
-
1) Adquisición de datos
-
-El primer paso es reunir los datos. Mientras que en muchos casos esto puede ser un proceso simple, como datos obtenidos des una base de datos de una aplicación web. algunas veces necesitamos usar técnicas especiales. Por ejemplo, los datos obtenidos desde sensorres IoT pueden ser inmensos, y es una buena práctica el uso de endpoints búfer como IoT Hub para para reunir todos los datos antes de procesarlos. -
-
2) Almacenamiento de datos
-
-Almacenar los datos puede ser desafiante, especialmente si hablamos de big data. Al decidir cómo almacer datos, hace sentido anticiparse a la forma en la cual serán consultados. Existen varias formas de almacenar los datos: -
    -
  • Las bases de datos relacionales almacenan una colección de tabla, y usan un lenguaje especial llamado SQL para consultalos. Típicamente, las tablas estarían conectadas unas a otras mediante un esquema. En muchas ocasiones necesitamos convertir los datos desde la fuente original para que se ajusten al esquema.
  • -
  • Bases de datos NoSQL, como CosmosDB, no exigen un esquema de datos, y permiten almacenar datos más complejos, por ejemplo, documentos JSON jerárquicos o grafos. Sin embargo, Las bases de datos NoSQL no tienen capacidades de consulta SQL sofisticadas, y no requieren integridad referencial entre los datos.
  • -
  • El almacenamiento en lago de datos se usa para grandes colecciones de datos sin procesamiento. Los lagos de datos suelen ser usados con big data, donde todos los datos no pueden ser reunidos en un único equipo, y tienen que ser almacenados y procesados por un clúster. Parquet es un formato de datos que se utiliza comúnmente en conjunto con big data.
  • -
-
-
3) Procesamiento de datos
-
-Esta es la parte más emocionante del viaje de los datos, el cual involucra el procesamiento de los datos desde su forma original hasta la forma en que puede ser usada por visualizaciones/modelo de entrenamiento. Cuando tratamos con datos no estructurados como texto o imágenes, debemos usar algunas técnias de IA para extraer las **características** de los datos, y así convertirlos a su forma estructurada. -
-
4) Visualización / entendimiento humano
-
-Usualmente para entender los datos necesitamos visualizarlos. Teniendo diversas ténicas de visualización en nuestro arsenal podemos encontrar la visualización adecuada para comprenderla. Comúnmente, un científico de datos necesita "jugar con los datos", visualizádolos varias veces y buscando alguna relación. Además, debemos usar técnicas de estadística para probar algunas hipótesis o probar la correlación entre distintas porciones de datos. -
-
5) Entrenando modelos predictivos
-
-Ya que el principal objetivo de la ciencia de datos es ser capaz de tomar decisiones basándonos en los datos, debemos usar técnicas de aprendizaje automático para construir modelos predictivos que serán capces de resolver nuestros problemas. -
-
- -Por supuesto, dependiendo de los datos reales algunos pasos serán omitidos (por ejemplo, cuando ya tenemos los datos en la base de datos, o cuando no necesitamos modelo de entrenamiento), o algunos pasos deben ser repetidos varias veces (como el procesamiento de datos). - -## Digitalización y transformación digital - -En la última década, muchos negocios comenzaron a entender la importancia de los datos al tomar decisiones de negocio. Para aplicar los principios de ciencia de datos para dirigir un negocio primero necesitas reunir algunos datos, por ejemplo, de alguna forma digitalizar los procesos de negocio. Esto es conocido como **digitalización**, y seguido usar técnicas de ciencia de datos para guiar decisiones esto usualmente conlleva a un incremento significativo de la productividad (o incluso negocios pivote), llamado **transformación digital**. - -Consideremos el siguiente ejemplo. Supongaos, tenemos un curso de ciencia de datos (como éste), el cual ofrecemos en línea a los estudiante, y queremos usar ciencia de datos para mejorarl. ¿Cómo podemos hacerlo? - -Podemos comenzar pensando "¿qué puede ser digitalizado?". La forma más simple sería medir el tiempo que le toma a cada estuddiante completar cada módulo, y el conocimiento obtenido (por ejemplo, realizando exámenes de opción múltiple al final de cada módulo). Promediando el tiempo en concluir de todos los estudiantes, y trabajar en simplificarlos. - -> Argumentarás que este enfoque no es idóneo, porque los módulos pueden tener distinta duración. Problablemente es más justo dividir el tiempo por la longitud del módulo (en número de caracteres), y comparar esos valores en su lugar. - -Cuando comenzamos analizando los resultados de los exámenes de opción múltiple, intentamos encontrar conceptos específicos que los estudiantes entendieron vagamente,y mejorar el contenido. Para hacerlo, necesitamos diseñar exámenes de tal forma que cada pregunta se relacione a un concepto concreto o porción de conocimiento. - -Si queremos hacerlo aún más complejo, podemos trazar el tiempo invertido en cada módulo contra la categoría de edad de los estudiantes. Encontraremos que para algunas categorías de edad les toma ciertamente más tiempo el completar el módulo, o algunos estudiantes abandonan el curso en cierto punto. Esot nos puede ayudar a sugerir recomendaciones de módulos por edad, y así minimizar el descontengo de la gente por falsas expectativas. - -## 🚀 Desafío - -En este desafío, intentaremos encontrar los conceptos relevante para el campo de la Ciencia de Datos consultando algunos textos. Tomarermos un artículo de Wikipedia de Ciecnia de Datos, descargaremos y procesaremos el texto, y luego construiremos una nube de palabras como esta: - -![Nube de palabras para Ciencia de Datos](images/ds_wordcloud.png) - -Visita [`notebook.ipynb`](notebook.ipynb) para leer el código.También pueder ejecutarlo y ver como realiza todas las transformaciones de los datos en tiempo real. - -> Si no sabes como ejecutar el código en Jupyter Notebook, da un vistazo a [este artículo](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). - - - -## [Cuestionario porterior a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/1) - -## Ejercicios - -* **Tarea 1**: Modifica el código anterior para encontrar conceptos relacionados para los campos de **Big Data** y **Machine Learning** -* **Tarea 2**: [Piensa en los escenarios para la Ciencia de Datos](assignment.md) - -## Créditos - -Esta lección ha sido escrita con ♥️ por [Dmitry Soshnikov](http://soshnikov.com) diff --git a/1-Introduction/02-ethics/translations/README.es.md b/1-Introduction/02-ethics/translations/README.es.md index 8d883b1b..e69de29b 100644 --- a/1-Introduction/02-ethics/translations/README.es.md +++ b/1-Introduction/02-ethics/translations/README.es.md @@ -1,263 +0,0 @@ -# Introducción a la ética de datos - -|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/02-Ethics.png)| -|:---:| -| Ética para ciencia de datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | - ---- - -Todos somos ciudadanos de datos viviendo en un gobernado por datos. - -Las tendencias de mercado nos dicen que para 2022, 1 de cada 3 grandes organizaciones comprará y venderá sus datos en línea a través de [mercados e intercambios](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/). Como **desarrolladores de Apps**, lo encontraremos más fácil y barato que integrar conocimientos dirigidos por datos y automatización dirigida por algoritmos en las experiencias de usuario del día a día. Pero como la AI se vuelve cada vez más presente, necesitarempos entender lso daños potenciales causados por el [armamentismo](https://www.youtube.com/watch?v=TQHs8SA1qpk) de dichos algoritmos a escala. - -Las tendencias también indican que crearemos y consumiremos más de [180 zettabytes](https://www.statista.com/statistics/871513/worldwide-data-created/) de datos para el 2025. Como **científicos de datos**, esto nos da niveles de acceso sin precedentes a datos personales. Esto significa que podemos construir perfiles conductuales de usuarios e influenciar en la toma de decisiones en formas que crea una [ilusión de libre elección](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) mientras empuja a los usuarios hacia los resultados que preferimos. También plantea preguntas más amplias respecto a la privacidad de datos y protección de los usuarios. - -La ética de datos son _barreras de seguridad necesarias_ para la ciencia de datos e ingeniería, ayudándonos a minimizar daños potenciales y consecuencias no deseadas de nuestras acciones dirigidas por datos. El [Hype Cycle de Gartner para AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) identifica tendencias relevantes en ética digital, AI responsable, y gobernanza de AI como factores clave para mega-tendencias mayores alrededor de la _democratización_ e _industrialización_ de la AI. - -![Hype Cycle de Gartner para AI - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) - -En esta lección, exploraremos la fascinante área de la ética de datos - desde los conceptos clave y desafíos, hasta los casos de estudio y conceptos de AI aplicados como gobernanza - que ayuda a establecer una cultura de ética en equipos y organizaciones que trabajan con datos y AI. - - - - -## [Examen previo a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/2) 🎯 - -## Definiciones básicas - -Empecemos entendiendo la terminología básica. - -La palabra "ética" proviene de la [palabra griega "ethikos"](https://en.wikipedia.org/wiki/Ethics) (y su raíz "ethos") lo cual significa _carácter o naturaleza moral_. - -La **ética** se trata de valores compartidos y principios morales que gobiernan nuestro comportamiento en sociedad. La ética se basa no en leyes sino en normas más ampliamente aceptadas de lo que es "correcto vs lo incorrecto". Sin embargo, las consideraciones éticas pueden influenciar iniciativas de gobernanza corporativa y regulaciones de gobernanza que crean más incentivos para el cumplimiento. - -La **ética de datos** es una [nueva rama de la ética](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) que "estudia y evalua problemas morales relacionados a _datos, algoritmos y prácticas correspondientes_"- Aquí, los **"datos"** se centran en acciones relacionadas a la generación, grabación, curación, procesamiento de difusión, intercambio y uso de **"algoritmos"** centrados en AI, agentes, aprendizaje automático, y robots, así como **"prácticas"** enfocadas en temas como inovación responsable, programación, hackeo y códigos de ética. - -**Ética aplicada** es la [aplicación práctica de consideraciones morales](https://en.wikipedia.org/wiki/Applied_ethics). Es el proceso de investigar activamente cuestiones éticas en el contexto de _acciones del mundo real, productos y procesos_, y tomar medidas correctivas para hacer que estos se alinean con nuestros valores éticos definidos. - -**Cultura ética** trata de [_operacionalizar_ la ética aplicada](https://hbr.org/2019/05/how-to-design-an-ethical-organization) para confirmar que nuestros principios éticos y prácticas son adoptados de forma consistente y escalable a través de toda la organización. Una cultura ética exitosa define principios éticos a nivel organización, provee incentivos significativos para el cumplimiento y refuerza las normas éticas alentando y amplificando los comportamientos deseados en cada nivel de la organización. - - -## Conceptos éticos - -En esta sección, duscutiremos conceptos como **valores compartidos** (principios) y **retos éticos** (problemas) para la ética de datos - y explora **casos de estudio** que te ayudan a entender estos conceptos en el contexto del mundo real. - -### 1. Principios éticos - -Cada estrategia de ética de datos comienza por la definición de _principios éticos_ - los "valores compartidos" que describen los comportamientos aceptables, y guían acciones de conformidad, en nuestros proyectos de datos y AI. Puedes definir estos a nivel individual o de equipo. Sin embargo, la mayoría de las grandes organizaciones describen estos en una misión _ética de AI_ o marco de trabajo que es definido a niveles corporativos y refuerza consistentement a través de todos los equipos. - -**Ejemplo:** La misión [responsable de AI](https://www.microsoft.com/en-us/ai/responsible-ai) de Microsoft se lee: _"Estamos comprometidos al avance de principios éticos dirigidos por AI que anteponen primero a la gente"_ - identificando 6 principios éticos en el marco de trabajo descrito a continuación: - -![AI responsable en Microsoft](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) - -Exploremos brevemente estos principios. La _transparencia_ y _responsabilidad_ son los valores fundamentales sobre los que se cimientan otros principios - iniciemos aquí: - -* [**Responsabilidad**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) hace a los practicantes _responsables_ por sus datos y operaciones de AI, en cumplimiento con estos principios éticos. -* [**Transparencia**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) asegura que los datos y acciones de AI sean _entendibles_ (interpretables) para los usuarios, explicando el qué y el porqué detrás de las decisiones. -* [**Justicia**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - se centra en asegurar que la AI trata a _todas las personas_ justamente, dirigiendo cualquier sesgo sistémico o social-ético implícito in datos y sistemas. -* [**Fiabilidad y seguridad**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - asegura que la AI se comporta _consistentemente_ con los valores definidos, minimizando daños potenciales o consecuencias no intencionadas. -* [**Privacidad & seguridad**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - se trata del entendimiento del linaje de datos, y provee _privacidad de datos y protecciones relacionadas_ a los usuarios. - -* [**Inclusión**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - trata del diseño de soluciones AI con la intención, adaptándolas para reunir un _amplio rango de necesidades humanas_ y capacidades. - -> 🚨 Piensa cual podría ser tu misión de ética de datos. Explorar marcos de trabajo éticos de AI de otras organizaciones - aquí tienes ejemplos de [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles) , y[Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). ¿Qué valores compartidos tienen en común? ¿Cómo se relacionan estos principios al producto de AI o industria en la cual operan? - -### 2. Desafíos éticos - -Una vez que tenemos pricipios éticos definidos, el siguiente paos es evaluar nuestros datos y acciones AI para ver si estos se alinean con los valores compartidos. Piensa en tus acciones en 2 categorías: _recolección de datos_ y _diseño de algoritmos_. - -Con la recolección de datos, las acciones probablemente involucren **datos personales** o información de identificación personal (PII) para individuos vivos identificables. Esto incluye [diversos artículos de datos no personales](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) que _colectivamente_ identifican a un individuo. Los desafíos éticos pueden relacionarse con _privacidad de datos_, _propiedad de los datos_, y temas relacionados como _consentimiento informado_ y _derechos de propiedad intelectual_ para los usuarios. - -Con el diseño de algoritmo, las acciones involucran la recolección y curación de **conjuntos de datos**, luego usarlos para entrenar y desplegar **modelos de datos** que predicen resultados o automatizan decisiones en contexto del mundo real. Los desafíos éticos pueden surgir de _conjuntos de datos sesgados_, problemas con la _calidad de los datos_, _injusticia_, y _malinterpretación_ in los algoritmo - incluyendo algunos problemas que son sistémicos por naturaleza. - -En ambos casos, los desafíos éticos destacan áreas donde nuestas acciones pueden encontrar conflictos con nuestros valores compartidos. Para detectar, mitigar, minimizar, o eliminar estas preocupaciones - necesitamos realizar preguntas morales de "sí/no" relacionadas a nuestas acciones, luego tomar acciones correctivas según sea necesario. Demos un vistazo a algunos desafíos éticos y las preguntas morales que plantean: - - -#### 2.1 Propiedad de los datos - -La recolección de datos suele involucrar datos que pueden identificar los sujetos de datos. La [propiedad de los datos](https://permission.io/blog/data-ownership) trata del _control_ y [_derechos de usuario_](https://permission.io/blog/data-ownership) relacionados a la creación, procesamiento y dispersión de los datos. - -Las preguntas morales que debemos hacer son: - * ¿Quién posea los datos? (usuario u organización) - * ¿Qué derechos tienen los sujetos de datos? (ejemplo: acceso, eliminación, portabilidad) - * ¿Qué derechos tienen las organizaciones? (ejemplo: rectificar revisiones de usuarios maliciosos) - -#### 2.2 Consentimiento informado - -[Consentimiento informado](https://legaldictionary.net/informed-consent/) define el acto de los usuarios al aceptar una acción (como la recolección de datos) con un _completo entendimiento_ de hechos relevantes incluyendo el propósito, riesgos potenciales y alternativas. - -Las preguntas a explorar son: - * ¿El usuario (sujeto de datos) otorgó el permiso para el uso y cpatura de datos? - * ¿El usuario entendió el propósito para el cual los datos fueron capturados? - * ¿EL usuario entendió los riesgos potenciales de su participación? - -#### 2.3 Propiedad intelectual - -La [propiedad intelectual](https://en.wikipedia.org/wiki/Intellectual_property) se refiere a creaciones intangibles resultado de la iniciativa humana, que puede _tener valor económico_ para individuos o negocios. - -Las preguntas a explorar son: - * ¿Los datos recolectados tiene valor económico para un usuario o negocio? - * ¿El **usuario** tiene propiedad intelectual en este ámbito? - * ¿La **organización** tiene propiedad intelectual en este ámbito? - * Si estos derechos existen, ¿cómo los protegemos? - -#### 2.4 Privacidad de datos - -La [privacidad de datos](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) o privacidad de la información se refiere a la preservación de la privacidad del usuario y la protección de la identidad del usuario respecto a información de identificación personal. - -Las preguntas a explorar son: - * ¿Están los datos (personales) de los usuarios seguros contra hackeos y filtraciones? - * ¿Están los datos de usuario accesibles sólo para usuarios y contextos autorizados? - * ¿Se preserva el anonimato de los usuarios cuando los datos son compartidos o esparcidos? - * ¿Puede un usuario ser desidentificado de conuntos de datos anonimizados? - - -#### 2.5 Derecho al olvido - -El [derecho al olvido](https://en.wikipedia.org/wiki/Right_to_be_forgotten) o [derecho a la eliminación](https://www.gdpreu.org/right-to-be-forgotten/) provee protección adicional a datos personales de los usuarios. Especialmente, brinda a los usuarios el derecho a solicitar la eliminación o remoción de datos personales de búsquedas de internet y otras ubicaciones, _bajo circunstancias específicas_ - permitiéndoles un nuevo comienzo en línea sin las acciones pasadas siendo retenidas contra él. - -Las preguntas a explorar son: - * ¿El sistema permite a los sujetos de datos solicitar eliminación? - * ¿La remoción del consentimiento del usuario debería disparar la eliminación automatizada? - * ¿Se recolectaron los datos sin consentimiento o por medios no legítimos? - * ¿Estamos de acuerdo con las regulaciones de gobierno para la privacidad de los datos? - - -#### 2.6 Sesgo del conjunto de datos - -Un conjunto de datos o [sesgo de recopilación](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) pretende seleccionar un subconjunto _no representativo_ de datos para el desarrollo de un algorítmo, creando una potencial injusticia en los resultados para distintos grupos. Los tipos de sesgos incluyen selección o muestreo de sesgo, sesgo voluntario y sesgo de instrumento. - -Las preguntas a explorar son: - * ¿Reclutamos un conjunto representativo de sujetos de datos? - * ¿Probamos nuestros conjuntos de datos recoletados o curados para distintos sesgos? - * ¿Podemos mitigar o eliminar los sesgos descubiertos? - -#### 2.7 Calidad de los datos - -[La calidad de los datos](https://lakefs.io/data-quality-testing/) se enfoca en la validez de los conjuntos de datos curados que se usan para desarrollar nuestros algoritmos, comprobando si las características y registros cumplen los requerimientos para el nivel de precisión necesario para nuestros propósitos de AI. - -Las preguntas a explorar son: - * ¿Capturamos _características_ válidas para nuestro caso de uso? - * ¿Los datos fueron capturados _consistentemente_ a través de las distintas fuentes de datos? - * ¿Están _completos_ los conjuntos de datos para las distintas condiciones o escenarios? - * ¿La información es capturada de forma _precisa_ reflejando la realidad? - -#### 2.8 Justicia del algoritmo - -[La justicia del algoritmo](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) verifica que el diseño del algoritmo discrimina sistemáticamente contra subgrupos específicos de sujetos de datos que conlleven a [daños potenciales](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) en _asignación_, (donde los recursos son negados o retenidos para ese grupo) y _calidad del servicio_ (donde la AI no es tan precisa para algunos subgrupos como lo es para otros). - -Las preguntas a explorar son: - * ¿Evaluamos la precisión del modelo para distintos subgrupos y condiciones? - * ¿Escrutinamos el sistema buscando daños potenciales (por ejemplo, estereotipos? - * ¿Podemos revisar los datos o retener re-entrenar modelos para mitigar daños potenciales? - -Explora recursos como [Listas de comprogación de justicia de AI](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) para aprender más. - -#### 2.9 Malinterpretación - -[La malinterpretación de datos](https://www.sciencedirect.com/topics/computer-science/misrepresentation) trata de preguntarse si estamos comunicando ideas honestamente de los datos reportados en una forma engañosa para soportar la narrativa deseada. - -Las preguntas a explorar son: - * ¿Estamos reportando datos incompletos o inexactos? - * ¿Estamos visualizando los datos de tal forma conllevan a conclusiones engañosas? - * ¿Estamos usando técnicas estadísticas selectivas para manipular los resultados? - * ¿Existen explicaciones alternativas par pueden ofrecer una conclusión distinta? - -#### 2.10 Libertad de elección -La [ilusión de libertad de elección](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) ocurre cuando un sistema "elige arquitecturas" usando algoritmos de toma de decisiones para empujar a la gente hacia la elección de un resultado preferido mientras aparenta darles opciones y control. Estos [patrones obscuros](https://www.darkpatterns.org/) pueden causar daño social y económico a los usuarios. Ya que las decisiones del usuario impactan en los perfiles de comportamiento, estas acciones dirigen potencialmente a futuras elecciones que pueden amplificar y extender el impacto de estos daños. - -Las preguntas a explorar son: - * ¿El usuario entendió las implicaciones de realizar dicha elección? - * ¿El usuario estaba conciente de las opciones (alternativas) y los pros y contrar de cada una? - * ¿El usuario puede revertir una elección influenciada o automatizada posteriormente? - -### 3. Casos de estudio - -Para poner estos desafíos éticos en contexto del mundo real, ayuda ver casos de estudio que destacan el daño potencial y las consecuencias a individuos y sociedad, cuando dichas violaciones éticas son pasadas por alto. - -Aquí hay algunos ejemplos: - -| Desafío de ética | Caso de estudio | -|--- |--- | -| **Consentimiento informado** | 1972 - [Estudio de sífilis Tuskegee](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - A los hombres afroamericanos que participaron en el estudio le fue prometido tratamiento médico gratuito _pero fueron engañados_ por los investigadores quienes fallaron al informar a los sujetos en sus diagnósticos o en la disponibilidad del tratamiento. Muchos sujetos murieron y los compañeros o hijos fueron afectados; el estudio duró 40 años. | -| **Privacidad de los datos** | 2007 - El [premio de datos de Netflix](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) otorgó a investigadores con _10M de clasificaciones anóminas de 50K clientes_ para ayudar a mejorar los algoritmos de recomendación. Sin embargo, los investigadores fueron capaces de correlacionar datos anónimos con datos personalmente identificables en _conjuntos de datos externos_ (por ejemplo, comentarios en IMDb) - efectivamente "des-anonimizando" a algunos subscriptores de Netflix.| -| **Sesgo de colección** | 2013 - La ciudad de Boston [desarrolló Street Bump](https://www.boston.gov/transportation/street-bump), una app que permite a los ciudadanos reportar baches, dando a la ciudad mejores datos de la carretera para encontrar y reparar desperfectos. Sin embargo, [la gente en los grupos con menores ingresos tuvieron menos acceso a autos y teléfonos](https://hbr.org/2013/04/the-hidden-biases-in-big-data), haciendo sus problemas de carretera invisibles para la app. Los desarrolladores trabajaron en conjunto con académicos para cambiar _el acceso equitativo y brecha digital_ y así fuese más justo. | -| **Justicia de algoritmos** | 2018 - El [estudio de tonos de género](http://gendershades.org/overview.html) del MIT evaluó la precisión de productos de clasificación de género , exponiendo brechas en la precisión para mujeres y personas de color. Una [tarjeta 2019 de Apple](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) parecía ofrecer menos crédit a mujeres que a hombres. Ambos ilustraron problemas en sesgos de algoritmos llevando a daños socio-económicos. -| **Malinterpretación de datos** | 2020 - El [departamento de salud pública de Georgia liberó gráficos de COVID-19](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) que parecían malinformar a los ciudadanos acerca de las tendencias en los casos confirmados sin orden cronológico en el eje x. Esto ilustra la malinterpretación a través de visualizaciones engañosas. | -| **Ilusión de libertad de elección** | 2020 - La aplicación de aprendizaje [ABCmouse pagó $10M para asentar una queja FTC](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) donde los padres fueron engañados para pagar subscripciones que no podían cancelar. Esto ilustra los patrones obscuros en arquitecturas de elección, donde los usuarios fueron empujados hacia elecciones potencialmente dañinas. | -| **Privacidad de los datos y derechos de usuario** | 2021 - La [infracción de datos](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) de Facebook expuso datos de 530M de usuarios, resultando en un acuerdo de $5B para la FTC. Sin embargo, esto rechazó notificar a los usuarios de la brecha violando los derechos de usuarios alrededor de la transparencia y acceso de datos. | - -¿Quieres explorar más casos de estudio? Revisa los siguientes recursos: -* [Ética desenvuelta](https://ethicsunwrapped.utexas.edu/case-studies) - dilemas éticos en diversas industrias. -* [Curso de ética en ciencia de datos](https://www.coursera.org/learn/data-science-ethics#syllabus) - referencía los casos de estudio explorados. -* [Donde las cosas han ido mal](https://deon.drivendata.org/examples/) - lista de comprobación de deon con ejemplos - -> 🚨 Piensa en los casos de estudio que has visto - ¿has experimentado o sido afectado por un desafío ético similar en tu vida? ¿Puedes pensar en al menos otro caso de estudio que ilustre uno de los desafíos éticos que discutimos en esta sección? - -## Ética aplicada - -Hemos hablado de conceptos éticos, desafíos y casos de estudio en contextos del mundo real. Pero ¿cómo podemos _aplicar_ los principios éticos y prácticas en nuestros proyectos? y ¿cómo _aplicamos_ estas prácticas para una mejor gobernanza? Exploremos algunas soluciones del mundo real: - -### 1. Códigos profesionales - -Los códigos profesionales ofrecen una opción para que las organizaciones "incentiven" a los miembros a apoyar sus principios éticos y su misión. Los códigos son _guías morales_ para el comportamiento profesional, que ayudan a los empleados o miembros a tomar decisiones que se alinea con sus principios de organización. Estas son tan buenas como el cumplimiento voluntario de los miembros; sin embargo, muchas organizaciones ofrecen incentivos adicionales y penalizaciones para motivar el cumplimiento de los miembros. - -Los ejemplos incluyen: - - * Código de ética de [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) - * Código de conducta de la [Asociación de ciencia de datos](http://datascienceassn.org/code-of-conduct.html) (creado en 2013) - * [Código de ética y conducta profesional de ACM](https://www.acm.org/code-of-ethics) (desde 1993) - -> 🚨 ¿Perteneces a una organización profesional de ingeniería o ciencia de datos? Explora su sitio para ver si definen un código de ética profesional. ¿Qué te dice acerca de sus principios éticos? ¿Cómo "incentivan" a los miembros para que sigan el código? - -### 2. Listas de comprobación de ética - -Mientras los códigos profesionales defiene los _comportamientos éticos_ requerido por sus practicantes, estos tienen [limitaciones conocidas](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) en su aplicación, particularmente en proyectos a gran escala. En su lugar, muchos expertos en ciencia de datos [abogan por listas de comprobación](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), que pueden **conectar principios a prácticas** en formas más determinísticas y accionables. - -Las listas de comprobación convierten preguntas en tareas de "sí/no" que pueden ser operadas, permitiendo darles seguimiento como parte de flujos de trabajo de liberación de productos estándar. - -Los ejemplos incluyen: - * [Deon](https://deon.drivendata.org/) - una lista de comprobación de ética de datos de propósito general creada a partir de [recomendaciones de la industria](https://deon.drivendata.org/#checklist-citations) con una herramienta de línea de comandos para su fácil integración. - * [Lista de comprobación de auditoría de privacidad](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - provee orientación general para prácticas de manejo de la información desde perspectivas legales y sociales. - * [Lista de comprobación de justicia de AI](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - creada por practicantes de AI para soportar la adopción e integración de controles justos en los ciclos de desarrollo de AI. - * [22 preguntas para ética en datos y AI](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - marcos de trabajo más abiertos, estructurados para la exploración inicial de problemas éticos en contextos de diseño, implementación y organización. - -### 3. Regulaciones éticas - -La ética trata de definir valores compartidos y hacer lo correcto _voluntariamente_. El **cumplimiento** trata de _seguir la ley_ donde se define. La **gobernanza** cubre ampliamente todas las formas en las cuales las organizaciones operan para hacer cumplir los principios éticos y seguir las leyes establecidas. - -Hoy en día, la gobernanza toma dos formas dentro de la organización. Primero, define los principios **éticos de AI** y establece prácticas para promover la adopción en todos los proyectos relacionados a AI en la organización. Segundo, trata de cumplir con todoso los mandatos de gobierno en **regulaciones de protección de datos** para las regiones en las cuales opera. - -Ejemplos de protección de datos y regulaciones de privacidad: - - * `1974`, [Ley de privacidad de EE.UU.](https://www.justice.gov/opcl/privacy-act-1974) - regula al _gobierno federal_ la recolección, uso y divulgación de información personal. - * `1996`, [Ley de responsabilidad y portabilidad de seguro de salud de EE.UU. (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - protege los datos de salud personales. - * `1998`, [Ley de protección de la privacidad en línea para niños de EE.UU. (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - protege la privacidad de los datos para menores de 13 años. - * `2018`, [Regulación de protección general de los datos (GDPR)](https://gdpr-info.eu/) - provee derechos de usuario, protección de datos y privacidad. - * `2018`, [Ley de privacidad para los consumidores de California (CCPA)](https://www.oag.ca.gov/privacy/ccpa) da a los consumidores más _derechos_ sobre sus datos (personales). - * `2021`, [Ley China de protección de la información personal](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) recién establecida, crea una de las regulaciones más grandes a nivel mundial respecto a privacidad de los datos. - -> 🚨 La Unión Europea definió la GDPR (regulación general de protección de datos) quedando como una de las regulaciones a la privacidad de los datos más influyentes de hoy en día. ¿Sabías que también define [8 derechos de usuario](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) para la protección de la privacidad digital de los ciudadanos y datos personales? Aprende más acerca de qué son y porqué importan. - - -### 4. Cultura ética - -Nota que existe una brecha intangible entre _cumplimiento_ (hacer suficiente para cumplir "lo designado por ley") y atender [problemas sistémicos](https://www.coursera.org/learn/data-science-ethics/home/week/4) (como la osificación, asimetría de la información e injusticia distribucional) que acelera el armamento de la AI. - -Lo último requier [enfoques colaborativos para definir culturas de ética](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) que construyan conexiones emocionales y valores compartidos consistentes _a través de las organizaciones_ en la industria. Esto hace un llamado a [culturas de ética de datos más formalizadas](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) en las organizaciones - permitiendo a _cualquiera_ tirar del [cordón de Andon](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (para plantear cuestiones éticas desde el principio en el proceso) y hacer de las _evaluaciones éticas_ (por ejemplo, en la contratación) un criterio principal en la formación de equipos en proyectos de AI. - ---- -## [Examen posterior a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/3) 🎯 -## Revisión y auto-estudio - -Los siguientes cursos y libros te facilitarán el entendimiento de conceptos éticos principales y desafíos, mientras que los casos de estudio y herramientas te ayudarán con las prácticas éticas aplicadas en contextos del mundo real. Aquí tienes algunos recursos con los que comenzar. - -* [Aprendizaje automático para principiantes](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - lecciones de justicia, de Microsoft. -* [Principios de AI responsable](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - ruta de aprendizaje gratuito de Microsoft Learn. -* [Ética y Ciencia de Datos](https://resources.oreilly.com/examples/0636920203964) - Libro electrónico de O'Reilly (M. Loukides, H. Mason et. al) -* [Ética de Ciencia de Datos](https://www.coursera.org/learn/data-science-ethics#syllabus) - curso en línea de la Universidad de Michigan. -* [Ética desenvuelta](https://ethicsunwrapped.utexas.edu/case-studies) - casos de estudio de la Universidad de Texas. - -# Asignación - -[Escribe un caso de estudio de ética de datos](assignment.md) From c61b3810a40ed66ce26b373a23f49ffe2d6dbaa1 Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Mon, 11 Oct 2021 13:59:27 -0700 Subject: [PATCH 18/30] Delete pandas.ipynb --- 2-Working-With-Data/R/pandas.ipynb | 978 ----------------------------- 1 file changed, 978 deletions(-) delete mode 100644 2-Working-With-Data/R/pandas.ipynb diff --git a/2-Working-With-Data/R/pandas.ipynb b/2-Working-With-Data/R/pandas.ipynb deleted file mode 100644 index cb928833..00000000 --- a/2-Working-With-Data/R/pandas.ipynb +++ /dev/null @@ -1,978 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "304296e3", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n", - "Attaching package: 'dplyr'\n", - "\n", - "\n", - "The following objects are masked from 'package:stats':\n", - "\n", - " filter, lag\n", - "\n", - "\n", - "The following objects are masked from 'package:base':\n", - "\n", - " intersect, setdiff, setequal, union\n", - "\n", - "\n", - "-- \u001b[1mAttaching packages\u001b[22m ------------------------------------------------------------------------------- tidyverse 1.3.1 --\n", - "\n", - "\u001b[32mv\u001b[39m \u001b[34mggplot2\u001b[39m 3.3.5 \u001b[32mv\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.4\n", - "\u001b[32mv\u001b[39m \u001b[34mtibble \u001b[39m 3.1.5 \u001b[32mv\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n", - "\u001b[32mv\u001b[39m \u001b[34mtidyr \u001b[39m 1.1.4 \u001b[32mv\u001b[39m \u001b[34mforcats\u001b[39m 0.5.1\n", - "\u001b[32mv\u001b[39m \u001b[34mreadr \u001b[39m 2.0.2 \n", - "\n", - "-- \u001b[1mConflicts\u001b[22m ---------------------------------------------------------------------------------- tidyverse_conflicts() --\n", - "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n", - "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n", - "\n" - ] - } - ], - "source": [ - "library(dplyr)\n", - "library(tidyverse)" - ] - }, - { - "cell_type": "markdown", - "id": "d786e051", - "metadata": {}, - "source": [ - "## Series" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "f659f553", - "metadata": {}, - "outputs": [], - "source": [ - "a<- 1:9" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "9acc193d", - "metadata": {}, - "outputs": [], - "source": [ - "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f577ec14", - "metadata": {}, - "outputs": [], - "source": [ - "a1 = length(a)\n", - "b1 = length(b)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "31e069a0", - "metadata": {}, - "outputs": [], - "source": [ - "a = data.frame(a,row.names = c(1:a1))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "29ce166e", - "metadata": {}, - "outputs": [], - "source": [ - "b = data.frame(b,row.names = c(1:b1))" - ] - }, - { - "cell_type": "markdown", - "id": "945feffd", - "metadata": {}, - "source": [ - "## DataFrame" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "88a435ec", - "metadata": {}, - "outputs": [], - "source": [ - "a = data.frame(a,row.names = c(1:a1))" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "c4e2a6c1", - "metadata": {}, - "outputs": [], - "source": [ - "b = data.frame(b,row.names = c(1:b1))" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "2bb5177c", - "metadata": {}, - "outputs": [], - "source": [ - "df<- data.frame(a,b)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "8f45d3a5", - "metadata": {}, - "outputs": [], - "source": [ - "df = \n", - " rename(df,\n", - " A = a,\n", - " B = b,\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "0efbf2d4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" - ], - "text/latex": [ - "A data.frame: 9 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like \\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\t5 & 5 & Python\\\\\n", - "\t6 & 6 & and \\\\\n", - "\t7 & 7 & Pandas\\\\\n", - "\t8 & 8 & very \\\\\n", - "\t9 & 9 & much \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "| 5 | 5 | Python |\n", - "| 6 | 6 | and |\n", - "| 7 | 7 | Pandas |\n", - "| 8 | 8 | very |\n", - "| 9 | 9 | much |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like \n", - "3 3 to \n", - "4 4 use \n", - "5 5 Python\n", - "6 6 and \n", - "7 7 Pandas\n", - "8 8 very \n", - "9 9 much " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "88b51fdc", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Column A (series):\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" - ], - "text/latex": [ - "A data.frame: 9 × 1\n", - "\\begin{tabular}{r|l}\n", - " & A\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t1 & 1\\\\\n", - "\t2 & 2\\\\\n", - "\t3 & 3\\\\\n", - "\t4 & 4\\\\\n", - "\t5 & 5\\\\\n", - "\t6 & 6\\\\\n", - "\t7 & 7\\\\\n", - "\t8 & 8\\\\\n", - "\t9 & 9\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 1\n", - "\n", - "| | A <int> |\n", - "|---|---|\n", - "| 1 | 1 |\n", - "| 2 | 2 |\n", - "| 3 | 3 |\n", - "| 4 | 4 |\n", - "| 5 | 5 |\n", - "| 6 | 6 |\n", - "| 7 | 7 |\n", - "| 8 | 8 |\n", - "| 9 | 9 |\n", - "\n" - ], - "text/plain": [ - " A\n", - "1 1\n", - "2 2\n", - "3 3\n", - "4 4\n", - "5 5\n", - "6 6\n", - "7 7\n", - "8 8\n", - "9 9" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "cat(\"Column A (series):\\n\")\n", - "select(df,'A')" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "010bcba8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" - ], - "text/latex": [ - "A data.frame: 4 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like\\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 4 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like\n", - "3 3 to \n", - "4 4 use " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A<5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "082277db", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" - ], - "text/latex": [ - "A data.frame: 1 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t6 & 6 & and\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 6 | 6 | and |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "6 6 and" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A>5 & df$A<7,]" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "0bbd19f8", - "metadata": {}, - "outputs": [], - "source": [ - "df$DivA <- df$A - mean(df$A)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "f36d96af", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" - ], - "text/latex": [ - "A data.frame: 9 × 3\n", - "\\begin{tabular}{r|lll}\n", - " & A & B & DivA\\\\\n", - " & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4\\\\\n", - "\t2 & 2 & like & -3\\\\\n", - "\t3 & 3 & to & -2\\\\\n", - "\t4 & 4 & use & -1\\\\\n", - "\t5 & 5 & Python & 0\\\\\n", - "\t6 & 6 & and & 1\\\\\n", - "\t7 & 7 & Pandas & 2\\\\\n", - "\t8 & 8 & very & 3\\\\\n", - "\t9 & 9 & much & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 3\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> |\n", - "|---|---|---|---|\n", - "| 1 | 1 | I | -4 |\n", - "| 2 | 2 | like | -3 |\n", - "| 3 | 3 | to | -2 |\n", - "| 4 | 4 | use | -1 |\n", - "| 5 | 5 | Python | 0 |\n", - "| 6 | 6 | and | 1 |\n", - "| 7 | 7 | Pandas | 2 |\n", - "| 8 | 8 | very | 3 |\n", - "| 9 | 9 | much | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA\n", - "1 1 I -4 \n", - "2 2 like -3 \n", - "3 3 to -2 \n", - "4 4 use -1 \n", - "5 5 Python 0 \n", - "6 6 and 1 \n", - "7 7 Pandas 2 \n", - "8 8 very 3 \n", - "9 9 much 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "c67f2bd0", - "metadata": {}, - "outputs": [], - "source": [ - "df$LenB <- str_length(df$B)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "cef214b2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" - ], - "text/latex": [ - "A data.frame: 9 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\t7 & 7 & Pandas & 2 & 6\\\\\n", - "\t8 & 8 & very & 3 & 4\\\\\n", - "\t9 & 9 & much & 4 & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "| 7 | 7 | Pandas | 2 | 6 |\n", - "| 8 | 8 | very | 3 | 4 |\n", - "| 9 | 9 | much | 4 | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 \n", - "7 7 Pandas 2 6 \n", - "8 8 very 3 4 \n", - "9 9 much 4 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "59fe5316", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" - ], - "text/latex": [ - "A data.frame: 5 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[0:5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "f944a949", - "metadata": {}, - "outputs": [], - "source": [ - " df1 = group_by(df,LenB)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "8ffd39cd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A tibble: 5 × 2
LenBmymean
<int><dbl>
11
22
33
44
66
\n" - ], - "text/latex": [ - "A tibble: 5 × 2\n", - "\\begin{tabular}{ll}\n", - " LenB & mymean\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t 1 & 1\\\\\n", - "\t 2 & 2\\\\\n", - "\t 3 & 3\\\\\n", - "\t 4 & 4\\\\\n", - "\t 6 & 6\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A tibble: 5 × 2\n", - "\n", - "| LenB <int> | mymean <dbl> |\n", - "|---|---|\n", - "| 1 | 1 |\n", - "| 2 | 2 |\n", - "| 3 | 3 |\n", - "| 4 | 4 |\n", - "| 6 | 6 |\n", - "\n" - ], - "text/plain": [ - " LenB mymean\n", - "1 1 1 \n", - "2 2 2 \n", - "3 3 3 \n", - "4 4 4 \n", - "5 6 6 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "summarise(df1,mymean =mean(LenB))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3b859950", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "5d3f0287", - "metadata": {}, - "source": [ - "## Printing and Plotting" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "69946dc7", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Warning message in file(file, \"rt\"):\n", - "\"cannot open file 'file name': No such file or directory\"\n" - ] - }, - { - "ename": "ERROR", - "evalue": "Error in file(file, \"rt\"): cannot open the connection\n", - "output_type": "error", - "traceback": [ - "Error in file(file, \"rt\"): cannot open the connection\nTraceback:\n", - "1. read.csv(\"file name\")", - "2. read.table(file = file, header = header, sep = sep, quote = quote, \n . dec = dec, fill = fill, comment.char = comment.char, ...)", - "3. file(file, \"rt\")" - ] - } - ], - "source": [ - "dataset = read.csv(\"file name\")" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "009af652", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" - ], - "text/latex": [ - "A data.frame: 6 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 6 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "515c95b2", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVuklEQVR4nO3djVYbuxWAUZn/ULDf/22LDYm5CQbbc0Y6kvZeC4c2C0Yj6cNg\n0absgMVK6wHACIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEASqEVKAzV+zy+HAaXAIiCQkCCAkCCAkCCAkC\nCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAnO9c3/olxIcJ5DRadS\nEhKcp3x6PPGXV3y+VQmJdMpff379t1d8whUJiXTKp7ev//aKT7gyIZFO+diXQoIlyjcdCQnO\n5FU7WGxfkHMkWOanLSkk+NmPO1JI8KOfN6SQ4Cdn7EchwQ/O2Y5Cgu+dtRuFBN86bzMKCb5x\n7r9pKSQ47eydKCQ46fyNKCQ45YJ9KCQ44ZJtKCT42kW7UEjwpcs2oZDgKxfuQSHBv849Pjp+\nwBXXuPxDEl4CTrt8AwoJ/lanCiExtmu2n5Dgv67afUKC/7hu8wkJPrty7wkJPrl26wkJ/rj4\n+Oj4kVU+JOEl4B8L9p2Q4MOSbSckeLdo1wkJDpZtOiHB3sI9JyTYLd9yQoIFL3v/+QxVPiTh\nJeCPgP0mJKYXsd2ExOxCdpuQmFzMZhMScwvaa0JialFbTUjMLGynCYl5LT8+On6qKh+S8BIQ\nuc2ExKxCd5mQmFTsJhMScwreY0JiStFbTEjMKHyHCYkJxW8wITGdwOOj4+es8iEJL8G0Vtld\nQmIy62wuITGXlfaWkJjKWltLSMxktZ0lJCay3sYSEvNYcV8JiVmscXx0/ORVPiThJZjNuptK\nSMxh5T0lJKaw9pYSEjNYfUcJiQmsv6GExPhybtmco4JTamynmiG93pfN4273dFM2DytdAj4p\n+6OjVY+Pjpeq8iEH283bfZWnx/1juV3lEnB0KKhORlVDeihvz0MPm3K/3W0P78dfAo4Ou2jA\nkDYfN7Y9/LFZ4xLwR/l4qLOZKoZUPn+F+PcLRfnsykvAH+XTW52rrf8hB5tPIW09I7GycnxS\nqnO1Ch9y8PtnpIftx/vxl4CjUrEjr9oxrFFftXOOREXvR0jVdpLfbGBItbeQkBhR9R0kJAZU\nfwMJifE02D9CYjgtto+QGE2T3SMkBtNm8wiJsTTaO0JiJM1+31lIDKTdxhES42i4b4TEMFpu\nGyExiqa7RkgMou2mERJjaLxnhMQQWm8ZITGC5jtGSPQvwf/tlJDoXobtIiR6l2K3CInO5dgs\nQqJvSfaKkOhalq0iJHqWZqcIiY7l2ShCol+J9omQ6FWCY9gjIdGpXJtESPQp2R4REl3KtkWE\nRI/S7RAh0aF8G0RI9Cfh/hAS3cm4PYREb1LuDiHRl1THsEdCoitZt4aQ6EnanSEkOpJ3YwiJ\nfiTeF0KiG5m3hZDoRepdISQ6kXtTCIk+JN8TQqIHSY9hj4REB/JvCCGRXwf7QUik18N2EBLZ\ndbEbhERyfWwGIZFbJ3tBSKTWy1YQEpl1sxOERF7pj2GPhERaPW0DIZFVV7tASCTV1yYQEjl1\ntgeEREq9bQEhkVF3O0BIJNTfBhAS+XS4/kIim46OYY+ERB5l31Cfiy8ksjg8E3X5dLQTEnkc\nVl1IkTqdTJYoHw99Lr6QSKJ8euuPkEiiHJ+UOiQksigddyQk0vCqXbhOJ5MFDkdIvWYkJJLo\nfcmFRAbdr7iQSKD/BRcS7Q2w3kKiuRGWW0i0NsRqC4nGxlhsIdHWIGstJFrq9wT2L0KioXEW\nWki0M9A6C4lmRlpmIdHKUKssJBoZa5GFRBuDrbGQaGK0JRYSLQy3wkKivmGOYY+ERHUjLq+Q\nqG3I1RUSlY25uEKirkHXVkhUNerSComahl1ZIVHRuAsrJOoZeF2FRC0DHsMeCYlKxl5UIVHH\n4GsqJKoYfUmFRA3Dr6iQqGD8BRUS65tgPYXE6mZYTiGxtilWU0isa+hj2CMhsapZllJIrGma\nlRQSK5pnIYXEeiZaRyGxmpmWUUisZapVFBIrmWsRhcQ6JltDIbGGSY5hj4TECuZbQCERb8L1\nExLhZlw+IRFtytUTEsHmXDwhEWvStRMSoWZdOiERadqVExJxpjuGPRISYWZeNiERZepVExJB\n5l40IRFj8jUTEiFmXzIhEWH6FRMSASyYkFjOegmJxSY+hj2qGdL2YfP2+HhTyu2vlS5BVWXf\nkMXaqxjS6+Zt2rdvD3u3q1yCmg7PRJ6O3lUM6b7cbd8e7l/fmrovD2tcgpoOqySkdxVDKmX7\n8fD2XV7ZrHEJKiofDxZrr2pIbw+b8uk//PXXn1x5CSoqn96o+q3dy273uH/YPyN9+0OStelA\nOT4pUTOkl7J5eNndbd5Ker4pz2tcgpqKjo5qvvz9vDl+7/a4ziWoyKt2n9Q9kP11f7Ov6O7x\ndbVLUMnhCElGv/nNBq5iif5LSFzDCv1FSFzBAv1NSFzO+vxDSFzM8vxLSFzK6nxBSFzI4nxF\nSFzEydHXhMQlrMwJQuICFuYUIXE+63KSkDibZTlNSJzLqnxDSJzJonxHSJzHmnxLSJzD8dEP\nhMQZLMhPhMTPrMePhMSPLMfPhMRPrMYZhMQPLMY5hMT3rMVZhMS3LMV5hMQ3HB+dS0icZh3O\nJiROsgznExKnWIULCIkTLMIlhMTXrMFFhMSXLMFlhMQXvOx9KSHxL/N/MSHxD9N/OSHxN7N/\nBSHxF5N/DSHxX+b+KkLiP0z9dYTEZ2b+SkLiyPHR1YTEH6b9ekLiN7O+gJD4YNKXEBLvzPki\nQuLAlC8jJPbM+EJCYmfClxMSjo8CCAmzHUBI0zPZEYQ0O3MdQkiTM9UxhDQ3Mx1ESFMz0VGE\nNDPzHEZI83J8FEhI0zLJkYQ0K3McSkiTMsWxhDQnMxxMSFMywdGCQnp52Cweyg+XII75DRcR\n0uvjTSlC6ofpjbc4pO2vt4rK7XPQeL66BFHK/ujI8dEaFob067bsvYaN599LEOVQkIzWsSSk\n5/u3hjYPL/FrY7HXcJhVIa1jQUibfUX/262xNhZ7BeXjweSuYUFIpTz8fidsOH9dgkDl0xvR\nPCNNoxyflAgX8DPS/4TUh6Kj9XjVbh5etVtR0DnSnXOk7N6PkMzsSvxmwyRM6br8rt0czOjK\n/Pb3FEzo2oQ0A/O5OiFNwHSuT0jjM5sVCGl4JrMGIY3OXFYhpLE5ga1ESEMzkbUIaWTmsRoh\n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\n+fQU0uGZyNMRGXUV0uFBSCTUUUjl40FJ5NNZSOXUX0JTnYVU6fpwoY5C+vhvdURCXYXkVTuy\n6imkj3MkyKevkCApIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEA\nIUEAIUEAIUGApCFBZ67Y5fHhNJP9XoxvmdTjSz24C2W/F+NbJvX4Ug/uQtnvxfiWST2+1IO7\nUPZ7Mb5lUo8v9eAulP1ejG+Z1ONLPbgLZb8X41sm9fhSD+5C2e/F+JZJPb7Ug7tQ9nsxvmVS\njy/14C6U/V6Mb5nU40s9uAtlvxfjWyb1+FIP7kLZ78X4lkk9vtSDu1D2ezG+ZVKPL/XgoBdC\nggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggDDhPR0UzYP29aj\n+Nb/Mk/2y30p96+tR3HS9mGTe30zr+0lHg7/iMAm8UzvtpvEk/2ce/5eN+/jy1t64rW9xEu5\nf9sDT+W+9UC+cXfNvxZSy2bzstvelYfW4zjh/jCyh8Trm3htL3H3fh+Zt+qvq/7ZnUp+HTbq\ntmxaD+SEkn59847sGokn+rXcJh7dfXlpPYRvfXxXnDb0wULaltvWQzjptrwmDumm7B43h2+P\nc3r8+NbusfVATsq7tld4Ks+th3DKY/mV+fmylLvDD/Otx3HS0/7Vhs1T62GclndtL/e6uWs9\nhFNeyl3qbzzfNunLbnuf9yv+4+FVu7TDGyqk7SbvN3Y3+xeWU4e0/xnptdy0HsgJT/tv7d5C\nz/uUlHdtL3abdRfsf5bff8+ZOqTPf+RzU/Y/vm3Thj5QSK83t4lP6xb8u/NVZD8+yB76OCE9\nJ37BroOQHg9Pma9pJ/H95e+851zDhJR3C3ySNqPDT0fb/c8gv1oP5ISHsv89u4e0v3kxTEj3\nyb/iH2Qe3furYnm/Gt0mH98oIWX/1ukg9eieb8sm79f7t2ejTe7xZV5b6IaQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQelPK613ZPB7e\nf7opN0+Nx8OBkHpTyqa82Zd0u3+n3LYeETsh9eetnO3uqdzsdr/K5mX3sim/Wg8JIfWnlP8d\nHne7u/L89t6zp6QMhNSbUn4/vr/3+w+asgi9EVJKFqE3QkrJIvTmGNLvn5HuGo+InZD6cwzJ\nq3aJCKk3x5CcIyUipN58Cmn3tPGbDUkICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQL8H5sEkT1X9RA0AAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "41b872c9", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAaE0lEQVR4nO3d63LeRrIsUFD3I1ki3/9pt6SxtrWPjYHBTnxINNb6QdOe\nYFVFMzM4shQzywswbDn7AJiBIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAInFly4joIclh8GDL/3s9RYI/\nKRIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEXL9I394vTx9fXj69WZ4+JA+CHS5fpOen5btPH398XN4m\nL4J/7/JF+rB8/zn04Wl5//zy/PNzOMHli/T08wuX5fnnX55i98Aely/Ssvz18ddf/s9//JvX\nX8eslhG/z7l6kZ5+K9Lzf/+JpEj8TaoAly/Sr18jfXj+8/P8CiamSH/a8W/tFIm/UaRf/v3v\nIykSf6NIlSu4GkWqXMHVKFLlCq5GkSpXcDWKVLmCq1GkyhVcjSJVruBqFKlyBVejSJUruBpF\nqlzB1ShS5QquRpEqV3A1ilS5gqtRpMoVXI0iVa7gahSpcgVXo0iVK7gaRapcwdUoUuUKrkaR\n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\niYP2zBmmSKE5dTFx0J45wxQpNKcuJg7aM2eYIoXm1MXEQXvmDFOk0Jy6mDhoz5xhihSaUxcT\nB+2ZM0yRQnPqYuKgPXOGKVJoTl1MHLRnzjBFCs2pi4mD9swZdmaRliG/Dyr4rtTFxEF75gw7\ntUgDj1D3XXHQ5Q5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiR\njnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQ\nrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU6\n6jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3\nOkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo\n13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93q\nIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe\n00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuD\nFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpN\nB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qoJIi/fHx3fLDuw9/vHLFVN8V\nB13uoIoiPb9Z/vL2dSum+q446HIHVRTpw/L0+evPz759eVo+vGrFVN8VB13uoIoiPS1f//fz\nr8vTq1ZM9V1x0OUOqijSsqz9zZ//5DfrM0akBjnotgetBfM1HvATCeY38GukL99+frb5aySY\n36t/vL397Ufkm+fkSXA9A7+P9OHn7yM9vfu48ftIML8H/MkGmJ8iQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiXc2yfHu3PH38+fmnN8ubTyffw0+KdDXL8rR896NJb398srw9+yJeFOl6\nvjfn+eXT8ubl5fPy9PXl69Py+eyTUKTrWZY/fn58eXm3fPn+2Rc/khoo0tUsy6+P//ns1184\nlW/C1ShSJd+Eq1GkSr4JV/NXkX79GundyRfxokjX81eR/Fu7Iop0NX8Vye8jFVGkq/mtSC+f\nnvzJhhKKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGK\nBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAH/Ayzv44rlEgIU\nAAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "barplot(df$A, ylab = 'A',xlab = 'no')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "11001454", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "670db495", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "R", - "language": "R", - "name": "ir" - }, - "language_info": { - "codemirror_mode": "r", - "file_extension": ".r", - "mimetype": "text/x-r-source", - "name": "R", - "pygments_lexer": "r", - "version": "4.1.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From ce53eb68b59c5609395e4b2bb00da85e8ffbaa70 Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Mon, 11 Oct 2021 14:00:20 -0700 Subject: [PATCH 19/30] Create Notebook.ipynb --- 2-Working-With-Data/R/Notebook.ipynb | 2249 ++++++++++++++++++++++++++ 1 file changed, 2249 insertions(+) create mode 100644 2-Working-With-Data/R/Notebook.ipynb diff --git a/2-Working-With-Data/R/Notebook.ipynb b/2-Working-With-Data/R/Notebook.ipynb new file mode 100644 index 00000000..eec49104 --- /dev/null +++ b/2-Working-With-Data/R/Notebook.ipynb @@ -0,0 +1,2249 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "304296e3", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "Attaching package: 'dplyr'\n", + "\n", + "\n", + "The following objects are masked from 'package:stats':\n", + "\n", + " filter, lag\n", + "\n", + "\n", + "The following objects are masked from 'package:base':\n", + "\n", + " intersect, setdiff, setequal, union\n", + "\n", + "\n", + "-- \u001b[1mAttaching packages\u001b[22m ------------------------------------------------------------------------------- tidyverse 1.3.1 --\n", + "\n", + "\u001b[32mv\u001b[39m \u001b[34mggplot2\u001b[39m 3.3.5 \u001b[32mv\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.4\n", + "\u001b[32mv\u001b[39m \u001b[34mtibble \u001b[39m 3.1.5 \u001b[32mv\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n", + "\u001b[32mv\u001b[39m \u001b[34mtidyr \u001b[39m 1.1.4 \u001b[32mv\u001b[39m \u001b[34mforcats\u001b[39m 0.5.1\n", + "\u001b[32mv\u001b[39m \u001b[34mreadr \u001b[39m 2.0.2 \n", + "\n", + "-- \u001b[1mConflicts\u001b[22m ---------------------------------------------------------------------------------- tidyverse_conflicts() --\n", + "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n", + "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n", + "\n", + "\n", + "Attaching package: 'lubridate'\n", + "\n", + "\n", + "The following objects are masked from 'package:base':\n", + "\n", + " date, intersect, setdiff, union\n", + "\n", + "\n", + "\n", + "Attaching package: 'zoo'\n", + "\n", + "\n", + "The following objects are masked from 'package:base':\n", + "\n", + " as.Date, as.Date.numeric\n", + "\n", + "\n", + "\n", + "Attaching package: 'xts'\n", + "\n", + "\n", + "The following objects are masked from 'package:dplyr':\n", + "\n", + " first, last\n", + "\n", + "\n" + ] + } + ], + "source": [ + "library(dplyr)\n", + "library(tidyverse)\n", + "library('lubridate')\n", + "library('zoo')\n", + "library('xts')" + ] + }, + { + "cell_type": "markdown", + "id": "d786e051", + "metadata": {}, + "source": [ + "## Series" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f659f553", + "metadata": {}, + "outputs": [], + "source": [ + "a<- 1:9" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "9acc193d", + "metadata": {}, + "outputs": [], + "source": [ + "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f577ec14", + "metadata": {}, + "outputs": [], + "source": [ + "a1 = length(a)\n", + "b1 = length(b)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "31e069a0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " a\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 4\n", + "5 5\n", + "6 6\n", + "7 7\n", + "8 8\n", + "9 9\n" + ] + } + ], + "source": [ + "a = data.frame(a,row.names = c(1:a1))\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "29ce166e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " b\n", + "1 I\n", + "2 like\n", + "3 to\n", + "4 use\n", + "5 Python\n", + "6 and\n", + "7 Pandas\n", + "8 very\n", + "9 much\n" + ] + } + ], + "source": [ + "b = data.frame(b,row.names = c(1:b1))\n", + "print(b)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "eeb683c7", + "metadata": {}, + "outputs": [], + "source": [ + "library('ggplot2')" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "e7788ca1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] \"length of index is 366\"\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "start_date <- mdy(\"Jan 1, 2020\")\n", + "end_date <- mdy(\"Dec 31, 2020\")\n", + "idx = seq(start_date,end_date,by ='day')\n", + "print(paste(\"length of index is \",length(idx)))\n", + "size = length(idx)\n", + "sales = runif(366,min=25,max=50)\n", + "sold_items <- data.frame(row.names=idx[0:size],sales)\n", + "ggplot(sold_items,aes(x=idx,y=sales)) + geom_point(color = \"firebrick\", shape = \"diamond\", size = 2) +\n", + " geom_line(color = \"firebrick\", size = .3)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "30747f7c", + "metadata": {}, + "outputs": [], + "source": [ + "library(repr)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "48f3e762", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "366" + ], + "text/latex": [ + "366" + ], + "text/markdown": [ + "366" + ], + "text/plain": [ + "[1] 366" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#changing plot size\n", + "options(repr.plot.width = 12,repr.plot.height=6)\n", + "size" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "abe41544", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 53 × 1
additional_product
<dbl>
2020-01-0110
2020-01-0810
2020-01-1510
2020-01-2210
2020-01-2910
2020-02-0510
2020-02-1210
2020-02-1910
2020-02-2610
2020-03-0410
2020-03-1110
2020-03-1810
2020-03-2510
2020-04-0110
2020-04-0810
2020-04-1510
2020-04-2210
2020-04-2910
2020-05-0610
2020-05-1310
2020-05-2010
2020-05-2710
2020-06-0310
2020-06-1010
2020-06-1710
2020-06-2410
2020-07-0110
2020-07-0810
2020-07-1510
2020-07-2210
2020-07-2910
2020-08-0510
2020-08-1210
2020-08-1910
2020-08-2610
2020-09-0210
2020-09-0910
2020-09-1610
2020-09-2310
2020-09-3010
2020-10-0710
2020-10-1410
2020-10-2110
2020-10-2810
2020-11-0410
2020-11-1110
2020-11-1810
2020-11-2510
2020-12-0210
2020-12-0910
2020-12-1610
2020-12-2310
2020-12-3010
\n" + ], + "text/latex": [ + "A data.frame: 53 × 1\n", + "\\begin{tabular}{r|l}\n", + " & additional\\_product\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t2020-01-01 & 10\\\\\n", + "\t2020-01-08 & 10\\\\\n", + "\t2020-01-15 & 10\\\\\n", + "\t2020-01-22 & 10\\\\\n", + "\t2020-01-29 & 10\\\\\n", + "\t2020-02-05 & 10\\\\\n", + "\t2020-02-12 & 10\\\\\n", + "\t2020-02-19 & 10\\\\\n", + "\t2020-02-26 & 10\\\\\n", + "\t2020-03-04 & 10\\\\\n", + "\t2020-03-11 & 10\\\\\n", + "\t2020-03-18 & 10\\\\\n", + "\t2020-03-25 & 10\\\\\n", + "\t2020-04-01 & 10\\\\\n", + "\t2020-04-08 & 10\\\\\n", + "\t2020-04-15 & 10\\\\\n", + "\t2020-04-22 & 10\\\\\n", + "\t2020-04-29 & 10\\\\\n", + "\t2020-05-06 & 10\\\\\n", + "\t2020-05-13 & 10\\\\\n", + "\t2020-05-20 & 10\\\\\n", + "\t2020-05-27 & 10\\\\\n", + "\t2020-06-03 & 10\\\\\n", + "\t2020-06-10 & 10\\\\\n", + "\t2020-06-17 & 10\\\\\n", + "\t2020-06-24 & 10\\\\\n", + "\t2020-07-01 & 10\\\\\n", + "\t2020-07-08 & 10\\\\\n", + "\t2020-07-15 & 10\\\\\n", + "\t2020-07-22 & 10\\\\\n", + "\t2020-07-29 & 10\\\\\n", + "\t2020-08-05 & 10\\\\\n", + "\t2020-08-12 & 10\\\\\n", + "\t2020-08-19 & 10\\\\\n", + "\t2020-08-26 & 10\\\\\n", + "\t2020-09-02 & 10\\\\\n", + "\t2020-09-09 & 10\\\\\n", + "\t2020-09-16 & 10\\\\\n", + "\t2020-09-23 & 10\\\\\n", + "\t2020-09-30 & 10\\\\\n", + "\t2020-10-07 & 10\\\\\n", + "\t2020-10-14 & 10\\\\\n", + "\t2020-10-21 & 10\\\\\n", + "\t2020-10-28 & 10\\\\\n", + "\t2020-11-04 & 10\\\\\n", + "\t2020-11-11 & 10\\\\\n", + "\t2020-11-18 & 10\\\\\n", + "\t2020-11-25 & 10\\\\\n", + "\t2020-12-02 & 10\\\\\n", + "\t2020-12-09 & 10\\\\\n", + "\t2020-12-16 & 10\\\\\n", + "\t2020-12-23 & 10\\\\\n", + "\t2020-12-30 & 10\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 53 × 1\n", + "\n", + "| | additional_product <dbl> |\n", + "|---|---|\n", + "| 2020-01-01 | 10 |\n", + "| 2020-01-08 | 10 |\n", + "| 2020-01-15 | 10 |\n", + "| 2020-01-22 | 10 |\n", + "| 2020-01-29 | 10 |\n", + "| 2020-02-05 | 10 |\n", + "| 2020-02-12 | 10 |\n", + "| 2020-02-19 | 10 |\n", + "| 2020-02-26 | 10 |\n", + "| 2020-03-04 | 10 |\n", + "| 2020-03-11 | 10 |\n", + "| 2020-03-18 | 10 |\n", + "| 2020-03-25 | 10 |\n", + "| 2020-04-01 | 10 |\n", + "| 2020-04-08 | 10 |\n", + "| 2020-04-15 | 10 |\n", + "| 2020-04-22 | 10 |\n", + "| 2020-04-29 | 10 |\n", + "| 2020-05-06 | 10 |\n", + "| 2020-05-13 | 10 |\n", + "| 2020-05-20 | 10 |\n", + "| 2020-05-27 | 10 |\n", + "| 2020-06-03 | 10 |\n", + "| 2020-06-10 | 10 |\n", + "| 2020-06-17 | 10 |\n", + "| 2020-06-24 | 10 |\n", + "| 2020-07-01 | 10 |\n", + "| 2020-07-08 | 10 |\n", + "| 2020-07-15 | 10 |\n", + "| 2020-07-22 | 10 |\n", + "| 2020-07-29 | 10 |\n", + "| 2020-08-05 | 10 |\n", + "| 2020-08-12 | 10 |\n", + "| 2020-08-19 | 10 |\n", + "| 2020-08-26 | 10 |\n", + "| 2020-09-02 | 10 |\n", + "| 2020-09-09 | 10 |\n", + "| 2020-09-16 | 10 |\n", + "| 2020-09-23 | 10 |\n", + "| 2020-09-30 | 10 |\n", + "| 2020-10-07 | 10 |\n", + "| 2020-10-14 | 10 |\n", + "| 2020-10-21 | 10 |\n", + "| 2020-10-28 | 10 |\n", + "| 2020-11-04 | 10 |\n", + "| 2020-11-11 | 10 |\n", + "| 2020-11-18 | 10 |\n", + "| 2020-11-25 | 10 |\n", + "| 2020-12-02 | 10 |\n", + "| 2020-12-09 | 10 |\n", + "| 2020-12-16 | 10 |\n", + "| 2020-12-23 | 10 |\n", + "| 2020-12-30 | 10 |\n", + "\n" + ], + "text/plain": [ + " additional_product\n", + "2020-01-01 10 \n", + "2020-01-08 10 \n", + "2020-01-15 10 \n", + "2020-01-22 10 \n", + "2020-01-29 10 \n", + "2020-02-05 10 \n", + "2020-02-12 10 \n", + "2020-02-19 10 \n", + "2020-02-26 10 \n", + "2020-03-04 10 \n", + "2020-03-11 10 \n", + "2020-03-18 10 \n", + "2020-03-25 10 \n", + "2020-04-01 10 \n", + "2020-04-08 10 \n", + "2020-04-15 10 \n", + "2020-04-22 10 \n", + "2020-04-29 10 \n", + "2020-05-06 10 \n", + "2020-05-13 10 \n", + "2020-05-20 10 \n", + "2020-05-27 10 \n", + "2020-06-03 10 \n", + "2020-06-10 10 \n", + "2020-06-17 10 \n", + "2020-06-24 10 \n", + "2020-07-01 10 \n", + "2020-07-08 10 \n", + "2020-07-15 10 \n", + "2020-07-22 10 \n", + "2020-07-29 10 \n", + "2020-08-05 10 \n", + "2020-08-12 10 \n", + "2020-08-19 10 \n", + "2020-08-26 10 \n", + "2020-09-02 10 \n", + "2020-09-09 10 \n", + "2020-09-16 10 \n", + "2020-09-23 10 \n", + "2020-09-30 10 \n", + "2020-10-07 10 \n", + "2020-10-14 10 \n", + "2020-10-21 10 \n", + "2020-10-28 10 \n", + "2020-11-04 10 \n", + "2020-11-11 10 \n", + "2020-11-18 10 \n", + "2020-11-25 10 \n", + "2020-12-02 10 \n", + "2020-12-09 10 \n", + "2020-12-16 10 \n", + "2020-12-23 10 \n", + "2020-12-30 10 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 366 × 1
total
<dbl>
2020-01-0154.37099
2020-01-02 NA
2020-01-03 NA
2020-01-04 NA
2020-01-05 NA
2020-01-06 NA
2020-01-07 NA
2020-01-0851.99181
2020-01-09 NA
2020-01-10 NA
2020-01-11 NA
2020-01-12 NA
2020-01-13 NA
2020-01-14 NA
2020-01-1547.57204
2020-01-16 NA
2020-01-17 NA
2020-01-18 NA
2020-01-19 NA
2020-01-20 NA
2020-01-21 NA
2020-01-2250.46082
2020-01-23 NA
2020-01-24 NA
2020-01-25 NA
2020-01-26 NA
2020-01-27 NA
2020-01-28 NA
2020-01-2955.32913
2020-01-30 NA
......
2020-12-0247.63211
2020-12-03 NA
2020-12-04 NA
2020-12-05 NA
2020-12-06 NA
2020-12-07 NA
2020-12-08 NA
2020-12-0949.09786
2020-12-10 NA
2020-12-11 NA
2020-12-12 NA
2020-12-13 NA
2020-12-14 NA
2020-12-15 NA
2020-12-1655.27396
2020-12-17 NA
2020-12-18 NA
2020-12-19 NA
2020-12-20 NA
2020-12-21 NA
2020-12-22 NA
2020-12-2346.30954
2020-12-24 NA
2020-12-25 NA
2020-12-26 NA
2020-12-27 NA
2020-12-28 NA
2020-12-29 NA
2020-12-3043.08600
2020-12-31 NA
\n" + ], + "text/latex": [ + "A data.frame: 366 × 1\n", + "\\begin{tabular}{r|l}\n", + " & total\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t2020-01-01 & 54.37099\\\\\n", + "\t2020-01-02 & NA\\\\\n", + "\t2020-01-03 & NA\\\\\n", + "\t2020-01-04 & NA\\\\\n", + "\t2020-01-05 & NA\\\\\n", + "\t2020-01-06 & NA\\\\\n", + "\t2020-01-07 & NA\\\\\n", + "\t2020-01-08 & 51.99181\\\\\n", + "\t2020-01-09 & NA\\\\\n", + "\t2020-01-10 & NA\\\\\n", + "\t2020-01-11 & NA\\\\\n", + "\t2020-01-12 & NA\\\\\n", + "\t2020-01-13 & NA\\\\\n", + "\t2020-01-14 & NA\\\\\n", + "\t2020-01-15 & 47.57204\\\\\n", + "\t2020-01-16 & NA\\\\\n", + "\t2020-01-17 & NA\\\\\n", + "\t2020-01-18 & NA\\\\\n", + "\t2020-01-19 & NA\\\\\n", + "\t2020-01-20 & NA\\\\\n", + "\t2020-01-21 & NA\\\\\n", + "\t2020-01-22 & 50.46082\\\\\n", + "\t2020-01-23 & NA\\\\\n", + "\t2020-01-24 & NA\\\\\n", + "\t2020-01-25 & NA\\\\\n", + "\t2020-01-26 & NA\\\\\n", + "\t2020-01-27 & NA\\\\\n", + "\t2020-01-28 & NA\\\\\n", + "\t2020-01-29 & 55.32913\\\\\n", + "\t2020-01-30 & NA\\\\\n", + "\t... & ...\\\\\n", + "\t2020-12-02 & 47.63211\\\\\n", + "\t2020-12-03 & NA\\\\\n", + "\t2020-12-04 & NA\\\\\n", + "\t2020-12-05 & NA\\\\\n", + "\t2020-12-06 & NA\\\\\n", + "\t2020-12-07 & NA\\\\\n", + "\t2020-12-08 & NA\\\\\n", + "\t2020-12-09 & 49.09786\\\\\n", + "\t2020-12-10 & NA\\\\\n", + "\t2020-12-11 & NA\\\\\n", + "\t2020-12-12 & NA\\\\\n", + "\t2020-12-13 & NA\\\\\n", + "\t2020-12-14 & NA\\\\\n", + "\t2020-12-15 & NA\\\\\n", + "\t2020-12-16 & 55.27396\\\\\n", + "\t2020-12-17 & NA\\\\\n", + "\t2020-12-18 & NA\\\\\n", + "\t2020-12-19 & NA\\\\\n", + "\t2020-12-20 & NA\\\\\n", + "\t2020-12-21 & NA\\\\\n", + "\t2020-12-22 & NA\\\\\n", + "\t2020-12-23 & 46.30954\\\\\n", + "\t2020-12-24 & NA\\\\\n", + "\t2020-12-25 & NA\\\\\n", + "\t2020-12-26 & NA\\\\\n", + "\t2020-12-27 & NA\\\\\n", + "\t2020-12-28 & NA\\\\\n", + "\t2020-12-29 & NA\\\\\n", + "\t2020-12-30 & 43.08600\\\\\n", + "\t2020-12-31 & NA\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 366 × 1\n", + "\n", + "| | total <dbl> |\n", + "|---|---|\n", + "| 2020-01-01 | 54.37099 |\n", + "| 2020-01-02 | NA |\n", + "| 2020-01-03 | NA |\n", + "| 2020-01-04 | NA |\n", + "| 2020-01-05 | NA |\n", + "| 2020-01-06 | NA |\n", + "| 2020-01-07 | NA |\n", + "| 2020-01-08 | 51.99181 |\n", + "| 2020-01-09 | NA |\n", + "| 2020-01-10 | NA |\n", + "| 2020-01-11 | NA |\n", + "| 2020-01-12 | NA |\n", + "| 2020-01-13 | NA |\n", + "| 2020-01-14 | NA |\n", + "| 2020-01-15 | 47.57204 |\n", + "| 2020-01-16 | NA |\n", + "| 2020-01-17 | NA |\n", + "| 2020-01-18 | NA |\n", + "| 2020-01-19 | NA |\n", + "| 2020-01-20 | NA |\n", + "| 2020-01-21 | NA |\n", + "| 2020-01-22 | 50.46082 |\n", + "| 2020-01-23 | NA |\n", + "| 2020-01-24 | NA |\n", + "| 2020-01-25 | NA |\n", + "| 2020-01-26 | NA |\n", + "| 2020-01-27 | NA |\n", + "| 2020-01-28 | NA |\n", + "| 2020-01-29 | 55.32913 |\n", + "| 2020-01-30 | NA |\n", + "| ... | ... |\n", + "| 2020-12-02 | 47.63211 |\n", + "| 2020-12-03 | NA |\n", + "| 2020-12-04 | NA |\n", + "| 2020-12-05 | NA |\n", + "| 2020-12-06 | NA |\n", + "| 2020-12-07 | NA |\n", + "| 2020-12-08 | NA |\n", + "| 2020-12-09 | 49.09786 |\n", + "| 2020-12-10 | NA |\n", + "| 2020-12-11 | NA |\n", + "| 2020-12-12 | NA |\n", + "| 2020-12-13 | NA |\n", + "| 2020-12-14 | NA |\n", + "| 2020-12-15 | NA |\n", + "| 2020-12-16 | 55.27396 |\n", + "| 2020-12-17 | NA |\n", + "| 2020-12-18 | NA |\n", + "| 2020-12-19 | NA |\n", + "| 2020-12-20 | NA |\n", + "| 2020-12-21 | NA |\n", + "| 2020-12-22 | NA |\n", + "| 2020-12-23 | 46.30954 |\n", + "| 2020-12-24 | NA |\n", + "| 2020-12-25 | NA |\n", + "| 2020-12-26 | NA |\n", + "| 2020-12-27 | NA |\n", + "| 2020-12-28 | NA |\n", + "| 2020-12-29 | NA |\n", + "| 2020-12-30 | 43.08600 |\n", + "| 2020-12-31 | NA |\n", + "\n" + ], + "text/plain": [ + " total \n", + "2020-01-01 54.37099\n", + "2020-01-02 NA\n", + "2020-01-03 NA\n", + "2020-01-04 NA\n", + "2020-01-05 NA\n", + "2020-01-06 NA\n", + "2020-01-07 NA\n", + "2020-01-08 51.99181\n", + "2020-01-09 NA\n", + "2020-01-10 NA\n", + "2020-01-11 NA\n", + "2020-01-12 NA\n", + "2020-01-13 NA\n", + "2020-01-14 NA\n", + "2020-01-15 47.57204\n", + "2020-01-16 NA\n", + "2020-01-17 NA\n", + "2020-01-18 NA\n", + "2020-01-19 NA\n", + "2020-01-20 NA\n", + "2020-01-21 NA\n", + "2020-01-22 50.46082\n", + "2020-01-23 NA\n", + "2020-01-24 NA\n", + "2020-01-25 NA\n", + "2020-01-26 NA\n", + "2020-01-27 NA\n", + "2020-01-28 NA\n", + "2020-01-29 55.32913\n", + "2020-01-30 NA\n", + "... ... \n", + "2020-12-02 47.63211\n", + "2020-12-03 NA\n", + "2020-12-04 NA\n", + "2020-12-05 NA\n", + "2020-12-06 NA\n", + "2020-12-07 NA\n", + "2020-12-08 NA\n", + "2020-12-09 49.09786\n", + "2020-12-10 NA\n", + "2020-12-11 NA\n", + "2020-12-12 NA\n", + "2020-12-13 NA\n", + "2020-12-14 NA\n", + "2020-12-15 NA\n", + "2020-12-16 55.27396\n", + "2020-12-17 NA\n", + "2020-12-18 NA\n", + "2020-12-19 NA\n", + "2020-12-20 NA\n", + "2020-12-21 NA\n", + "2020-12-22 NA\n", + "2020-12-23 46.30954\n", + "2020-12-24 NA\n", + "2020-12-25 NA\n", + "2020-12-26 NA\n", + "2020-12-27 NA\n", + "2020-12-28 NA\n", + "2020-12-29 NA\n", + "2020-12-30 43.08600\n", + "2020-12-31 NA" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "index = seq(start_date,end_date,by = 'week')\n", + "sz = length(index)\n", + "additional_product <- rep(10,53)\n", + "additional_items <- data.frame(row.names = index[0:sz],additional_product)\n", + "additional_items\n", + "# we are merging two dataframe so that we can add\n", + "additional_item = merge(additional_items,sold_items, by = 0, all = TRUE)[-1] \n", + "total = data.frame(row.names=idx[0:size],additional_item$additional_product + additional_item$sales)\n", + "colnames(total) = c('total')\n", + "total" + ] + }, + { + "cell_type": "markdown", + "id": "cb00ff6e", + "metadata": {}, + "source": [ + "\n", + "### As you can see, we are having problems here, because in the weekly series non-mentioned days are considered to be missing (NaN), if we add NaN to a number gives us NaN. In order todo addition, we need to fill the value 0 of additional_items while adding series: \n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "387cb4c2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 366 × 1
total
<dbl>
2020-01-0154.37099
2020-01-0227.85566
2020-01-0338.29037
2020-01-0426.72367
2020-01-0537.93330
2020-01-0638.70961
2020-01-0728.36133
2020-01-0851.99181
2020-01-0944.76469
2020-01-1026.54058
2020-01-1131.70327
2020-01-1237.83133
2020-01-1347.45717
2020-01-1431.78909
2020-01-1547.57204
2020-01-1643.79414
2020-01-1746.35117
2020-01-1840.18666
2020-01-1934.65751
2020-01-2038.09664
2020-01-2136.76733
2020-01-2250.46082
2020-01-2339.62032
2020-01-2444.56143
2020-01-2526.45657
2020-01-2645.48089
2020-01-2749.03699
2020-01-2846.05290
2020-01-2955.32913
2020-01-3044.83293
......
2020-12-0247.63211
2020-12-0349.44946
2020-12-0428.07843
2020-12-0549.80941
2020-12-0637.43425
2020-12-0732.36442
2020-12-0837.96258
2020-12-0949.09786
2020-12-1043.08738
2020-12-1136.93554
2020-12-1233.44147
2020-12-1335.24588
2020-12-1447.67855
2020-12-1541.84728
2020-12-1655.27396
2020-12-1732.23195
2020-12-1830.18391
2020-12-1939.27033
2020-12-2045.13756
2020-12-2143.00961
2020-12-2243.69411
2020-12-2346.30954
2020-12-2437.42397
2020-12-2535.94406
2020-12-2645.00482
2020-12-2731.81550
2020-12-2832.69022
2020-12-2931.52063
2020-12-3043.08600
2020-12-3139.28333
\n" + ], + "text/latex": [ + "A data.frame: 366 × 1\n", + "\\begin{tabular}{r|l}\n", + " & total\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t2020-01-01 & 54.37099\\\\\n", + "\t2020-01-02 & 27.85566\\\\\n", + "\t2020-01-03 & 38.29037\\\\\n", + "\t2020-01-04 & 26.72367\\\\\n", + "\t2020-01-05 & 37.93330\\\\\n", + "\t2020-01-06 & 38.70961\\\\\n", + "\t2020-01-07 & 28.36133\\\\\n", + "\t2020-01-08 & 51.99181\\\\\n", + "\t2020-01-09 & 44.76469\\\\\n", + "\t2020-01-10 & 26.54058\\\\\n", + "\t2020-01-11 & 31.70327\\\\\n", + "\t2020-01-12 & 37.83133\\\\\n", + "\t2020-01-13 & 47.45717\\\\\n", + "\t2020-01-14 & 31.78909\\\\\n", + "\t2020-01-15 & 47.57204\\\\\n", + "\t2020-01-16 & 43.79414\\\\\n", + "\t2020-01-17 & 46.35117\\\\\n", + "\t2020-01-18 & 40.18666\\\\\n", + "\t2020-01-19 & 34.65751\\\\\n", + "\t2020-01-20 & 38.09664\\\\\n", + "\t2020-01-21 & 36.76733\\\\\n", + "\t2020-01-22 & 50.46082\\\\\n", + "\t2020-01-23 & 39.62032\\\\\n", + "\t2020-01-24 & 44.56143\\\\\n", + "\t2020-01-25 & 26.45657\\\\\n", + "\t2020-01-26 & 45.48089\\\\\n", + "\t2020-01-27 & 49.03699\\\\\n", + "\t2020-01-28 & 46.05290\\\\\n", + "\t2020-01-29 & 55.32913\\\\\n", + "\t2020-01-30 & 44.83293\\\\\n", + "\t... & ...\\\\\n", + "\t2020-12-02 & 47.63211\\\\\n", + "\t2020-12-03 & 49.44946\\\\\n", + "\t2020-12-04 & 28.07843\\\\\n", + "\t2020-12-05 & 49.80941\\\\\n", + "\t2020-12-06 & 37.43425\\\\\n", + "\t2020-12-07 & 32.36442\\\\\n", + "\t2020-12-08 & 37.96258\\\\\n", + "\t2020-12-09 & 49.09786\\\\\n", + "\t2020-12-10 & 43.08738\\\\\n", + "\t2020-12-11 & 36.93554\\\\\n", + "\t2020-12-12 & 33.44147\\\\\n", + "\t2020-12-13 & 35.24588\\\\\n", + "\t2020-12-14 & 47.67855\\\\\n", + "\t2020-12-15 & 41.84728\\\\\n", + "\t2020-12-16 & 55.27396\\\\\n", + "\t2020-12-17 & 32.23195\\\\\n", + "\t2020-12-18 & 30.18391\\\\\n", + "\t2020-12-19 & 39.27033\\\\\n", + "\t2020-12-20 & 45.13756\\\\\n", + "\t2020-12-21 & 43.00961\\\\\n", + "\t2020-12-22 & 43.69411\\\\\n", + "\t2020-12-23 & 46.30954\\\\\n", + "\t2020-12-24 & 37.42397\\\\\n", + "\t2020-12-25 & 35.94406\\\\\n", + "\t2020-12-26 & 45.00482\\\\\n", + "\t2020-12-27 & 31.81550\\\\\n", + "\t2020-12-28 & 32.69022\\\\\n", + "\t2020-12-29 & 31.52063\\\\\n", + "\t2020-12-30 & 43.08600\\\\\n", + "\t2020-12-31 & 39.28333\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 366 × 1\n", + "\n", + "| | total <dbl> |\n", + "|---|---|\n", + "| 2020-01-01 | 54.37099 |\n", + "| 2020-01-02 | 27.85566 |\n", + "| 2020-01-03 | 38.29037 |\n", + "| 2020-01-04 | 26.72367 |\n", + "| 2020-01-05 | 37.93330 |\n", + "| 2020-01-06 | 38.70961 |\n", + "| 2020-01-07 | 28.36133 |\n", + "| 2020-01-08 | 51.99181 |\n", + "| 2020-01-09 | 44.76469 |\n", + "| 2020-01-10 | 26.54058 |\n", + "| 2020-01-11 | 31.70327 |\n", + "| 2020-01-12 | 37.83133 |\n", + "| 2020-01-13 | 47.45717 |\n", + "| 2020-01-14 | 31.78909 |\n", + "| 2020-01-15 | 47.57204 |\n", + "| 2020-01-16 | 43.79414 |\n", + "| 2020-01-17 | 46.35117 |\n", + "| 2020-01-18 | 40.18666 |\n", + "| 2020-01-19 | 34.65751 |\n", + "| 2020-01-20 | 38.09664 |\n", + "| 2020-01-21 | 36.76733 |\n", + "| 2020-01-22 | 50.46082 |\n", + "| 2020-01-23 | 39.62032 |\n", + "| 2020-01-24 | 44.56143 |\n", + "| 2020-01-25 | 26.45657 |\n", + "| 2020-01-26 | 45.48089 |\n", + "| 2020-01-27 | 49.03699 |\n", + "| 2020-01-28 | 46.05290 |\n", + "| 2020-01-29 | 55.32913 |\n", + "| 2020-01-30 | 44.83293 |\n", + "| ... | ... |\n", + "| 2020-12-02 | 47.63211 |\n", + "| 2020-12-03 | 49.44946 |\n", + "| 2020-12-04 | 28.07843 |\n", + "| 2020-12-05 | 49.80941 |\n", + "| 2020-12-06 | 37.43425 |\n", + "| 2020-12-07 | 32.36442 |\n", + "| 2020-12-08 | 37.96258 |\n", + "| 2020-12-09 | 49.09786 |\n", + "| 2020-12-10 | 43.08738 |\n", + "| 2020-12-11 | 36.93554 |\n", + "| 2020-12-12 | 33.44147 |\n", + "| 2020-12-13 | 35.24588 |\n", + "| 2020-12-14 | 47.67855 |\n", + "| 2020-12-15 | 41.84728 |\n", + "| 2020-12-16 | 55.27396 |\n", + "| 2020-12-17 | 32.23195 |\n", + "| 2020-12-18 | 30.18391 |\n", + "| 2020-12-19 | 39.27033 |\n", + "| 2020-12-20 | 45.13756 |\n", + "| 2020-12-21 | 43.00961 |\n", + "| 2020-12-22 | 43.69411 |\n", + "| 2020-12-23 | 46.30954 |\n", + "| 2020-12-24 | 37.42397 |\n", + "| 2020-12-25 | 35.94406 |\n", + "| 2020-12-26 | 45.00482 |\n", + "| 2020-12-27 | 31.81550 |\n", + "| 2020-12-28 | 32.69022 |\n", + "| 2020-12-29 | 31.52063 |\n", + "| 2020-12-30 | 43.08600 |\n", + "| 2020-12-31 | 39.28333 |\n", + "\n" + ], + "text/plain": [ + " total \n", + "2020-01-01 54.37099\n", + "2020-01-02 27.85566\n", + "2020-01-03 38.29037\n", + "2020-01-04 26.72367\n", + "2020-01-05 37.93330\n", + "2020-01-06 38.70961\n", + "2020-01-07 28.36133\n", + "2020-01-08 51.99181\n", + "2020-01-09 44.76469\n", + "2020-01-10 26.54058\n", + "2020-01-11 31.70327\n", + "2020-01-12 37.83133\n", + "2020-01-13 47.45717\n", + "2020-01-14 31.78909\n", + "2020-01-15 47.57204\n", + "2020-01-16 43.79414\n", + "2020-01-17 46.35117\n", + "2020-01-18 40.18666\n", + "2020-01-19 34.65751\n", + "2020-01-20 38.09664\n", + "2020-01-21 36.76733\n", + "2020-01-22 50.46082\n", + "2020-01-23 39.62032\n", + "2020-01-24 44.56143\n", + "2020-01-25 26.45657\n", + "2020-01-26 45.48089\n", + "2020-01-27 49.03699\n", + "2020-01-28 46.05290\n", + "2020-01-29 55.32913\n", + "2020-01-30 44.83293\n", + "... ... \n", + "2020-12-02 47.63211\n", + "2020-12-03 49.44946\n", + "2020-12-04 28.07843\n", + "2020-12-05 49.80941\n", + "2020-12-06 37.43425\n", + "2020-12-07 32.36442\n", + "2020-12-08 37.96258\n", + "2020-12-09 49.09786\n", + "2020-12-10 43.08738\n", + "2020-12-11 36.93554\n", + "2020-12-12 33.44147\n", + "2020-12-13 35.24588\n", + "2020-12-14 47.67855\n", + "2020-12-15 41.84728\n", + "2020-12-16 55.27396\n", + "2020-12-17 32.23195\n", + "2020-12-18 30.18391\n", + "2020-12-19 39.27033\n", + "2020-12-20 45.13756\n", + "2020-12-21 43.00961\n", + "2020-12-22 43.69411\n", + "2020-12-23 46.30954\n", + "2020-12-24 37.42397\n", + "2020-12-25 35.94406\n", + "2020-12-26 45.00482\n", + "2020-12-27 31.81550\n", + "2020-12-28 32.69022\n", + "2020-12-29 31.52063\n", + "2020-12-30 43.08600\n", + "2020-12-31 39.28333" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "additional_item[is.na(additional_item)] = 0\n", + "total = data.frame(row.names=idx[0:size],additional_item$additional_product + additional_item$sales)\n", + "colnames(total) = c('total')\n", + "total" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "bdb60236", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABaAAAALQCAMAAABR+ye1AAAAOVBMVEUAAAAzMzNNTU1oaGh8\nfHyMjIyampqnp6eyIiKysrK9vb3Hx8fQ0NDZ2dnh4eHp6enr6+vw8PD///+vl18TAAAACXBI\nWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO19ibbjOI5sdlb1tGam37TL//+xr64XWSKxBEBQ\nImXEOVVpSyQIbkEwROv+uicSiURiSPw624FEIpFI0EiCTiQSiUGRBJ1IJBKDIgk6kUgkBkUS\ndCKRSAyKJOhEIpEYFEnQiUQiMSiSoBOJRGJQeAn61oTG7F2RvvmQvjkxtHPpnR8NziVB80jf\nfEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTO\njyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjf\nnBjaufTOj4MI+vff2P6bBH0e0jcfRvZtbOfSOz+OIejfr//9Xr8kQZ+G9M2HkX0b27n0zo8k\n6C5I33xI35wY2rn0zo8DCfqeBD0E0jcfRvZtbOfSOz+OIuin9vwh6H/8QMuWSCQSiUboBP1i\n54ygB0D65sPIvo3tXHrnR2rQXZC++ZC+OTG0c+mdH0nQXZC++ZC+OTG0c+mdH0nQXZC++ZC+\nOTG0c+mdH0nQXZC++ZC+OTG0c+mdH/lLwi5I33xI35wY2rn0zo98F0cXpG8+pG9ODO1ceudH\nEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9O\nDO1ceudHEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9ODO0c6d2yHO4Gg6HbLgm6C9I3H9I3J4Z2\njvJuWYZh6KHbLgm6C9I3H9I3J4Z2jvBuWcZh6KHbLgm6C9I3H9I3J4Z2rvJueeMUb0oM3XZJ\n0F2QvvmQvjkxtHO1d0nQKJKguyB98yF9c2Jo51Li8CMJugvSNx/SNyeGdi4fEvqRBN0F6ZsP\n6ZsTQzuXx+z8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdo71L\niQNBEnQXpG8+pG9ODO1cErQfSdBdkL75kL45MbRz6Z0fSdBdkL75kL45MbRz6Z0fSdBdkL75\n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\n9y4JugscvrWSzxcQdN+D5BrOHW+dj9n1RUocbiRBd4Hdt4p8Jpc4OmjQvX/qo2Dk8Ta2c0nQ\nfiRBd4HZt5p8JifoeA26w28x55E4NAztXHrnRxJ0FwRE0GYDaMKUOD4GLYlHHm9jO5fe+ZEE\n3QWpQftw7EPC6/wMfWznUuLwIwm6C9pPcfSTWi0SR4MX4x+zM9L9yONtbOeSoP1Igu6CgFcj\ndGNoA0G3eNGFoCNhFUxGHm9jO5fe+ZEE3QWtvjnU1iaJgy7r+EMTB/ap+ZHjyONtbOfSOz+S\noLug0TfPeYUWgibLajw1kRH0kRjauZQ4/EiC7oITImgYtW9caU387Mp4aJ+mBn0UkqDdSILu\ngpk0aCFSbuJnT9Zj+zRPcRwE1LtzfoU0dNslQXdBu2/2v3mLpqx8E6SMJn52ZL52n3bE0M6h\n3p30O9Gh2y4JugsO980wtHGJo8mbJOgjMbRzoHfhPxQFMXTbJUF3wdG+WYY2+pDwKH+2yD51\nYmjnMO/ankk3YOi2S4LugoN9M41t/JhdA5wzLfvUiaGdM0XQnV0hMHTbnUrQiSg8x/bZXmwx\nljeJGTDaGL4MMoIuMZcGPQ7SNyeGds5wiqOrGwyGbruUOLrgeN8aTnEMhPTNiaGdS+/8SILu\ngvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGd\nS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTN\nh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8\nSILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TN\niaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILu\ngvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGd\nS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTN\nh/TNiaGdS+/8OJWg2/CPU0qdH9luPmS7uZFN50ZI0yVBz4RsNx+y3dzIpnMjCfrrkO3mQ7ab\nG9l0biRBfx2y3XzIdnMjm86NiQk6kUgkEiqSoBOJRGJQJEEnEonEoEiCTiQSiUGRBJ1IJBKD\nIgk6kUgkBkVXgv7NXf8b0r/fjmw3N37XH7PVdPBtka2nwTpb+RwUziDo36//cf9+O34zjZDt\npqMm6Gw1FW8C2V7a/putJ8HIckVDa0iCHg9J0H4kQTtABHZJ0DCsBM1NbxrdCfoV2P++F1ui\nspOz01f8frfEp+m2N7PdBJQzor5Mfv9q/N5+eM7XvYCRrSfByHJ3W7v1Juh1tjz9J++R378X\n75Z6N1kubAYkQduxJWiq8bL1RBhZ7m5rt0MkDqJD15r8pr9/MX7f981RzpVsNwE0x2SrSagI\n+r5vmGw9EUaWu9varT9Bv/ZM6/fPrex0CusimwTtQBK0HUnQTTCy3N3Wbv016Du1tvze/6/6\n/sX4/QRN0NluCsh2y1YToRB0tp4MI8vdbe3Wi6B3s6Ryne7p7PQfSBF0tpsAcsitN7LVeJSR\n8X3bMNl6PDwsd7e12xEEXQX/v/dpqu/fjE8brQ8Jy3vZbiTIIXfPVtOxOQfNrG7ZeiQ8LHe3\ntVs3iWPz+5lybXnv4e+bf7bfvxobgl6P2b0vZbuJoIZcthqEza/c1sZZv2brsfCw3CAEnWhF\njv9E4tuRBD0skqATiW9HEvSwSIJOJL4dSdCJRCIxKJKgE4lEYlAkQScSicSgSIJOJBKJQZEE\nnUgkEoMiCTqRSCQGRRJ04rr49av+lEhMhBy3iesiCToxOXLcJr4BSdCJKZHjNnFdPGj5P3/+\n+ufPp3/++r/7/f9+/Xm2U4kEjiToxHXxQ9B//f7169c///70168/7vc/f1g6kZgFSdCJ6+KH\noP/1d8z8158/n/7717//99e/zvYpkTAgCTpxXfzQ8h+//nO//+chduQ7jBOzIQk6cV380PLz\n8eDj///769f/nuxRImFCEnTiukiCTkyOJOjEdVFKHH/8kRJHYiokQSeui+ejwT//ur8fEv77\n13+f7VMiYUASdOK6qI/Z/fHrr7OdSiRwJEEnrovnD1X+ufuhyj/PdiqRwJEEnUgkEoMiCTqR\nSCQGRRJ0IpFIDIok6EQikRgUSdCJRCIxKJKgE4lEYlAkQScSicSgSIJOJBKJQZEEnUgkEoMi\nCTqRSCQGRRJ0IpFIDIok6EQikRgU/x+22CwvTrb4CQAAAABJRU5ErkJggg==", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "ggplot(total,aes(x=idx,y=total)) + geom_point(color = \"firebrick\", shape = \"diamond\", size = 2) +\n", + " geom_line(color = \"firebrick\", linetype = \"dotted\", size = .3)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "294dde87", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n" + ], + "text/latex": [ + "\\begin{enumerate*}\n", + "\\item 2020-01-01\n", + "\\item 2020-02-01\n", + "\\item 2020-03-01\n", + "\\item 2020-04-01\n", + "\\item 2020-05-01\n", + "\\item 2020-06-01\n", + "\\item 2020-07-01\n", + "\\item 2020-08-01\n", + "\\item 2020-09-01\n", + "\\item 2020-10-01\n", + "\\item 2020-11-01\n", + "\\item 2020-12-01\n", + "\\end{enumerate*}\n" + ], + "text/markdown": [ + "1. 2020-01-01\n", + "2. 2020-02-01\n", + "3. 2020-03-01\n", + "4. 2020-04-01\n", + "5. 2020-05-01\n", + "6. 2020-06-01\n", + "7. 2020-07-01\n", + "8. 2020-08-01\n", + "9. 2020-09-01\n", + "10. 2020-10-01\n", + "11. 2020-11-01\n", + "12. 2020-12-01\n", + "\n", + "\n" + ], + "text/plain": [ + " [1] \"2020-01-01\" \"2020-02-01\" \"2020-03-01\" \"2020-04-01\" \"2020-05-01\"\n", + " [6] \"2020-06-01\" \"2020-07-01\" \"2020-08-01\" \"2020-09-01\" \"2020-10-01\"\n", + "[11] \"2020-11-01\" \"2020-12-01\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "index = seq(start_date,end_date,by ='month')\n", + "index" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "7542d95e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " total\n", + "2020-01-31 40.12725\n", + "2020-02-29 36.38809\n", + "2020-03-31 36.63476\n", + "2020-04-30 36.69513\n", + "2020-05-31 40.12267\n", + "2020-06-30 38.04770\n", + "2020-07-31 39.38036\n", + "2020-08-31 37.60016\n", + "2020-09-30 37.76963\n", + "2020-10-31 38.57457\n", + "2020-11-30 38.38480\n", + "2020-12-31 39.73959" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nycRWwgAAAABJRU5ErkJggg==", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "x<- as.xts(total, dateFormat =\"Date\")\n", + "(monthly<-apply.monthly(x,mean))\n", + "ggplot(monthly, aes(x=index, y=total)) + \n", + " geom_bar(stat = \"identity\", width=5) " + ] + }, + { + "cell_type": "markdown", + "id": "945feffd", + "metadata": {}, + "source": [ + "## DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "id": "d38f1754", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Warning message in seq_len(head.end.idx):\n", + "\"first element used of 'length.out' argument\"\n", + "ERROR while rich displaying an object: Error in seq_len(head.end.idx): argument must be coercible to non-negative integer\n", + "\n", + "Traceback:\n", + "1. FUN(X[[i]], ...)\n", + "2. tryCatch(withCallingHandlers({\n", + " . if (!mime %in% names(repr::mime2repr)) \n", + " . stop(\"No repr_* for mimetype \", mime, \" in repr::mime2repr\")\n", + " . rpr <- repr::mime2repr[[mime]](obj)\n", + " . if (is.null(rpr)) \n", + " . return(NULL)\n", + " . prepare_content(is.raw(rpr), rpr)\n", + " . }, error = error_handler), error = outer_handler)\n", + "3. tryCatchList(expr, classes, parentenv, handlers)\n", + "4. tryCatchOne(expr, names, parentenv, handlers[[1L]])\n", + "5. doTryCatch(return(expr), name, parentenv, handler)\n", + "6. withCallingHandlers({\n", + " . if (!mime %in% names(repr::mime2repr)) \n", + " . stop(\"No repr_* for mimetype \", mime, \" in repr::mime2repr\")\n", + " . rpr <- repr::mime2repr[[mime]](obj)\n", + " . if (is.null(rpr)) \n", + " . return(NULL)\n", + " . prepare_content(is.raw(rpr), rpr)\n", + " . }, error = error_handler)\n", + "7. repr::mime2repr[[mime]](obj)\n", + "8. repr_html.help_files_with_topic(obj)\n", + "9. repr_help_files_with_topic_generic(obj, Rd2HTML)\n" + ] + } + ], + "source": [ + "?vector" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "88a435ec", + "metadata": {}, + "outputs": [], + "source": [ + "a = data.frame(a,row.names = c(1:a1))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "c4e2a6c1", + "metadata": {}, + "outputs": [], + "source": [ + "b = data.frame(b,row.names = c(1:b1))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2bb5177c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 2
ab
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" + ], + "text/latex": [ + "A data.frame: 9 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & a & b\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like \\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\t5 & 5 & Python\\\\\n", + "\t6 & 6 & and \\\\\n", + "\t7 & 7 & Pandas\\\\\n", + "\t8 & 8 & very \\\\\n", + "\t9 & 9 & much \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 2\n", + "\n", + "| | a <int> | b <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "| 5 | 5 | Python |\n", + "| 6 | 6 | and |\n", + "| 7 | 7 | Pandas |\n", + "| 8 | 8 | very |\n", + "| 9 | 9 | much |\n", + "\n" + ], + "text/plain": [ + " a b \n", + "1 1 I \n", + "2 2 like \n", + "3 3 to \n", + "4 4 use \n", + "5 5 Python\n", + "6 6 and \n", + "7 7 Pandas\n", + "8 8 very \n", + "9 9 much " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df<- data.frame(a,b)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "8f45d3a5", + "metadata": {}, + "outputs": [], + "source": [ + "df = \n", + " rename(df,\n", + " A = a,\n", + " B = b,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "0efbf2d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" + ], + "text/latex": [ + "A data.frame: 9 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like \\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\t5 & 5 & Python\\\\\n", + "\t6 & 6 & and \\\\\n", + "\t7 & 7 & Pandas\\\\\n", + "\t8 & 8 & very \\\\\n", + "\t9 & 9 & much \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "| 5 | 5 | Python |\n", + "| 6 | 6 | and |\n", + "| 7 | 7 | Pandas |\n", + "| 8 | 8 | very |\n", + "| 9 | 9 | much |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like \n", + "3 3 to \n", + "4 4 use \n", + "5 5 Python\n", + "6 6 and \n", + "7 7 Pandas\n", + "8 8 very \n", + "9 9 much " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "88b51fdc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column A (series):\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" + ], + "text/latex": [ + "A data.frame: 9 × 1\n", + "\\begin{tabular}{r|l}\n", + " & A\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t1 & 1\\\\\n", + "\t2 & 2\\\\\n", + "\t3 & 3\\\\\n", + "\t4 & 4\\\\\n", + "\t5 & 5\\\\\n", + "\t6 & 6\\\\\n", + "\t7 & 7\\\\\n", + "\t8 & 8\\\\\n", + "\t9 & 9\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 1\n", + "\n", + "| | A <int> |\n", + "|---|---|\n", + "| 1 | 1 |\n", + "| 2 | 2 |\n", + "| 3 | 3 |\n", + "| 4 | 4 |\n", + "| 5 | 5 |\n", + "| 6 | 6 |\n", + "| 7 | 7 |\n", + "| 8 | 8 |\n", + "| 9 | 9 |\n", + "\n" + ], + "text/plain": [ + " A\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 4\n", + "5 5\n", + "6 6\n", + "7 7\n", + "8 8\n", + "9 9" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cat(\"Column A (series):\\n\")\n", + "select(df,'A')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "010bcba8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" + ], + "text/latex": [ + "A data.frame: 4 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like\\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 4 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like\n", + "3 3 to \n", + "4 4 use " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A<5,]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "082277db", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\n", + "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" + ], + "text/latex": [ + "A data.frame: 1 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t6 & 6 & and\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 1 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 6 | 6 | and |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "6 6 and" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A>5 & df$A<7,]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "0bbd19f8", + "metadata": {}, + "outputs": [], + "source": [ + "df$DivA <- df$A - mean(df$A)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "f36d96af", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" + ], + "text/latex": [ + "A data.frame: 9 × 3\n", + "\\begin{tabular}{r|lll}\n", + " & A & B & DivA\\\\\n", + " & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4\\\\\n", + "\t2 & 2 & like & -3\\\\\n", + "\t3 & 3 & to & -2\\\\\n", + "\t4 & 4 & use & -1\\\\\n", + "\t5 & 5 & Python & 0\\\\\n", + "\t6 & 6 & and & 1\\\\\n", + "\t7 & 7 & Pandas & 2\\\\\n", + "\t8 & 8 & very & 3\\\\\n", + "\t9 & 9 & much & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 3\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> |\n", + "|---|---|---|---|\n", + "| 1 | 1 | I | -4 |\n", + "| 2 | 2 | like | -3 |\n", + "| 3 | 3 | to | -2 |\n", + "| 4 | 4 | use | -1 |\n", + "| 5 | 5 | Python | 0 |\n", + "| 6 | 6 | and | 1 |\n", + "| 7 | 7 | Pandas | 2 |\n", + "| 8 | 8 | very | 3 |\n", + "| 9 | 9 | much | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA\n", + "1 1 I -4 \n", + "2 2 like -3 \n", + "3 3 to -2 \n", + "4 4 use -1 \n", + "5 5 Python 0 \n", + "6 6 and 1 \n", + "7 7 Pandas 2 \n", + "8 8 very 3 \n", + "9 9 much 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "c67f2bd0", + "metadata": {}, + "outputs": [], + "source": [ + "df$LenB <- str_length(df$B)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "cef214b2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" + ], + "text/latex": [ + "A data.frame: 9 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\t7 & 7 & Pandas & 2 & 6\\\\\n", + "\t8 & 8 & very & 3 & 4\\\\\n", + "\t9 & 9 & much & 4 & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "| 7 | 7 | Pandas | 2 | 6 |\n", + "| 8 | 8 | very | 3 | 4 |\n", + "| 9 | 9 | much | 4 | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 \n", + "7 7 Pandas 2 6 \n", + "8 8 very 3 4 \n", + "9 9 much 4 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "59fe5316", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" + ], + "text/latex": [ + "A data.frame: 5 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 5 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[0:5,]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "f944a949", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = df %>% group_by(LenB) %>% summarise(a = mean(A))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "8ffd39cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 2
LenBa
<int><dbl>
11.000000
23.000000
35.000000
46.333333
66.000000
\n" + ], + "text/latex": [ + "A tibble: 5 × 2\n", + "\\begin{tabular}{ll}\n", + " LenB & a\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t 1 & 1.000000\\\\\n", + "\t 2 & 3.000000\\\\\n", + "\t 3 & 5.000000\\\\\n", + "\t 4 & 6.333333\\\\\n", + "\t 6 & 6.000000\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 2\n", + "\n", + "| LenB <int> | a <dbl> |\n", + "|---|---|\n", + "| 1 | 1.000000 |\n", + "| 2 | 3.000000 |\n", + "| 3 | 5.000000 |\n", + "| 4 | 6.333333 |\n", + "| 6 | 6.000000 |\n", + "\n" + ], + "text/plain": [ + " LenB a \n", + "1 1 1.000000\n", + "2 2 3.000000\n", + "3 3 5.000000\n", + "4 4 6.333333\n", + "5 6 6.000000" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df1" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "3b859950", + "metadata": {}, + "outputs": [], + "source": [ + "df2 = df %>% group_by(LenB) %>%\n", + "summarise(MEAN = mean(A),count =length(DivA))" + ] + }, + { + "cell_type": "markdown", + "id": "5d3f0287", + "metadata": {}, + "source": [ + "## Printing and Plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "69946dc7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Warning message in file(file, \"rt\"):\n", + "\"cannot open file 'file name': No such file or directory\"\n" + ] + }, + { + "ename": "ERROR", + "evalue": "Error in file(file, \"rt\"): cannot open the connection\n", + "output_type": "error", + "traceback": [ + "Error in file(file, \"rt\"): cannot open the connection\nTraceback:\n", + "1. read.csv(\"file name\")", + "2. read.table(file = file, header = header, sep = sep, quote = quote, \n . dec = dec, fill = fill, comment.char = comment.char, ...)", + "3. file(file, \"rt\")" + ] + } + ], + "source": [ + "dataset = read.csv(\"file name\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "009af652", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" + ], + "text/latex": [ + "A data.frame: 6 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 6 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "head(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "515c95b2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVuklEQVR4nO3djVYbuxWAUZn/ULDf/22LDYm5CQbbc0Y6kvZeC4c2C0Yj6cNg\n0absgMVK6wHACIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEASqEVKAzV+zy+HAaXAIiCQkCCAkCCAkCCAkC\nCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAnO9c3/olxIcJ5DRadS\nEhKcp3x6PPGXV3y+VQmJdMpff379t1d8whUJiXTKp7ev//aKT7gyIZFO+diXQoIlyjcdCQnO\n5FU7WGxfkHMkWOanLSkk+NmPO1JI8KOfN6SQ4Cdn7EchwQ/O2Y5Cgu+dtRuFBN86bzMKCb5x\n7r9pKSQ47eydKCQ46fyNKCQ45YJ9KCQ44ZJtKCT42kW7UEjwpcs2oZDgKxfuQSHBv849Pjp+\nwBXXuPxDEl4CTrt8AwoJ/lanCiExtmu2n5Dgv67afUKC/7hu8wkJPrty7wkJPrl26wkJ/rj4\n+Oj4kVU+JOEl4B8L9p2Q4MOSbSckeLdo1wkJDpZtOiHB3sI9JyTYLd9yQoIFL3v/+QxVPiTh\nJeCPgP0mJKYXsd2ExOxCdpuQmFzMZhMScwvaa0JialFbTUjMLGynCYl5LT8+On6qKh+S8BIQ\nuc2ExKxCd5mQmFTsJhMScwreY0JiStFbTEjMKHyHCYkJxW8wITGdwOOj4+es8iEJL8G0Vtld\nQmIy62wuITGXlfaWkJjKWltLSMxktZ0lJCay3sYSEvNYcV8JiVmscXx0/ORVPiThJZjNuptK\nSMxh5T0lJKaw9pYSEjNYfUcJiQmsv6GExPhybtmco4JTamynmiG93pfN4273dFM2DytdAj4p\n+6OjVY+Pjpeq8iEH283bfZWnx/1juV3lEnB0KKhORlVDeihvz0MPm3K/3W0P78dfAo4Ou2jA\nkDYfN7Y9/LFZ4xLwR/l4qLOZKoZUPn+F+PcLRfnsykvAH+XTW52rrf8hB5tPIW09I7GycnxS\nqnO1Ch9y8PtnpIftx/vxl4CjUrEjr9oxrFFftXOOREXvR0jVdpLfbGBItbeQkBhR9R0kJAZU\nfwMJifE02D9CYjgtto+QGE2T3SMkBtNm8wiJsTTaO0JiJM1+31lIDKTdxhES42i4b4TEMFpu\nGyExiqa7RkgMou2mERJjaLxnhMQQWm8ZITGC5jtGSPQvwf/tlJDoXobtIiR6l2K3CInO5dgs\nQqJvSfaKkOhalq0iJHqWZqcIiY7l2ShCol+J9omQ6FWCY9gjIdGpXJtESPQp2R4REl3KtkWE\nRI/S7RAh0aF8G0RI9Cfh/hAS3cm4PYREb1LuDiHRl1THsEdCoitZt4aQ6EnanSEkOpJ3YwiJ\nfiTeF0KiG5m3hZDoRepdISQ6kXtTCIk+JN8TQqIHSY9hj4REB/JvCCGRXwf7QUik18N2EBLZ\ndbEbhERyfWwGIZFbJ3tBSKTWy1YQEpl1sxOERF7pj2GPhERaPW0DIZFVV7tASCTV1yYQEjl1\ntgeEREq9bQEhkVF3O0BIJNTfBhAS+XS4/kIim46OYY+ERB5l31Cfiy8ksjg8E3X5dLQTEnkc\nVl1IkTqdTJYoHw99Lr6QSKJ8euuPkEiiHJ+UOiQksigddyQk0vCqXbhOJ5MFDkdIvWYkJJLo\nfcmFRAbdr7iQSKD/BRcS7Q2w3kKiuRGWW0i0NsRqC4nGxlhsIdHWIGstJFrq9wT2L0KioXEW\nWki0M9A6C4lmRlpmIdHKUKssJBoZa5GFRBuDrbGQaGK0JRYSLQy3wkKivmGOYY+ERHUjLq+Q\nqG3I1RUSlY25uEKirkHXVkhUNerSComahl1ZIVHRuAsrJOoZeF2FRC0DHsMeCYlKxl5UIVHH\n4GsqJKoYfUmFRA3Dr6iQqGD8BRUS65tgPYXE6mZYTiGxtilWU0isa+hj2CMhsapZllJIrGma\nlRQSK5pnIYXEeiZaRyGxmpmWUUisZapVFBIrmWsRhcQ6JltDIbGGSY5hj4TECuZbQCERb8L1\nExLhZlw+IRFtytUTEsHmXDwhEWvStRMSoWZdOiERadqVExJxpjuGPRISYWZeNiERZepVExJB\n5l40IRFj8jUTEiFmXzIhEWH6FRMSASyYkFjOegmJxSY+hj2qGdL2YfP2+HhTyu2vlS5BVWXf\nkMXaqxjS6+Zt2rdvD3u3q1yCmg7PRJ6O3lUM6b7cbd8e7l/fmrovD2tcgpoOqySkdxVDKmX7\n8fD2XV7ZrHEJKiofDxZrr2pIbw+b8uk//PXXn1x5CSoqn96o+q3dy273uH/YPyN9+0OStelA\nOT4pUTOkl7J5eNndbd5Ker4pz2tcgpqKjo5qvvz9vDl+7/a4ziWoyKt2n9Q9kP11f7Ov6O7x\ndbVLUMnhCElGv/nNBq5iif5LSFzDCv1FSFzBAv1NSFzO+vxDSFzM8vxLSFzK6nxBSFzI4nxF\nSFzEydHXhMQlrMwJQuICFuYUIXE+63KSkDibZTlNSJzLqnxDSJzJonxHSJzHmnxLSJzD8dEP\nhMQZLMhPhMTPrMePhMSPLMfPhMRPrMYZhMQPLMY5hMT3rMVZhMS3LMV5hMQ3HB+dS0icZh3O\nJiROsgznExKnWIULCIkTLMIlhMTXrMFFhMSXLMFlhMQXvOx9KSHxL/N/MSHxD9N/OSHxN7N/\nBSHxF5N/DSHxX+b+KkLiP0z9dYTEZ2b+SkLiyPHR1YTEH6b9ekLiN7O+gJD4YNKXEBLvzPki\nQuLAlC8jJPbM+EJCYmfClxMSjo8CCAmzHUBI0zPZEYQ0O3MdQkiTM9UxhDQ3Mx1ESFMz0VGE\nNDPzHEZI83J8FEhI0zLJkYQ0K3McSkiTMsWxhDQnMxxMSFMywdGCQnp52Cweyg+XII75DRcR\n0uvjTSlC6ofpjbc4pO2vt4rK7XPQeL66BFHK/ujI8dEaFob067bsvYaN599LEOVQkIzWsSSk\n5/u3hjYPL/FrY7HXcJhVIa1jQUibfUX/262xNhZ7BeXjweSuYUFIpTz8fidsOH9dgkDl0xvR\nPCNNoxyflAgX8DPS/4TUh6Kj9XjVbh5etVtR0DnSnXOk7N6PkMzsSvxmwyRM6br8rt0czOjK\n/Pb3FEzo2oQ0A/O5OiFNwHSuT0jjM5sVCGl4JrMGIY3OXFYhpLE5ga1ESEMzkbUIaWTmsRoh\n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\n+fQU0uGZyNMRGXUV0uFBSCTUUUjl40FJ5NNZSOXUX0JTnYVU6fpwoY5C+vhvdURCXYXkVTuy\n6imkj3MkyKevkCApIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEA\nIUEAIUEAIUGApCFBZ67Y5fHhNJP9XoxvmdTjSz24C2W/F+NbJvX4Ug/uQtnvxfiWST2+1IO7\nUPZ7Mb5lUo8v9eAulP1ejG+Z1ONLPbgLZb8X41sm9fhSD+5C2e/F+JZJPb7Ug7tQ9nsxvmVS\njy/14C6U/V6Mb5nU40s9uAtlvxfjWyb1+FIP7kLZ78X4lkk9vtSDu1D2ezG+ZVKPL/XgoBdC\nggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggDDhPR0UzYP29aj\n+Nb/Mk/2y30p96+tR3HS9mGTe30zr+0lHg7/iMAm8UzvtpvEk/2ce/5eN+/jy1t64rW9xEu5\nf9sDT+W+9UC+cXfNvxZSy2bzstvelYfW4zjh/jCyh8Trm3htL3H3fh+Zt+qvq/7ZnUp+HTbq\ntmxaD+SEkn59847sGokn+rXcJh7dfXlpPYRvfXxXnDb0wULaltvWQzjptrwmDumm7B43h2+P\nc3r8+NbusfVATsq7tld4Ks+th3DKY/mV+fmylLvDD/Otx3HS0/7Vhs1T62GclndtL/e6uWs9\nhFNeyl3qbzzfNunLbnuf9yv+4+FVu7TDGyqk7SbvN3Y3+xeWU4e0/xnptdy0HsgJT/tv7d5C\nz/uUlHdtL3abdRfsf5bff8+ZOqTPf+RzU/Y/vm3Thj5QSK83t4lP6xb8u/NVZD8+yB76OCE9\nJ37BroOQHg9Pma9pJ/H95e+851zDhJR3C3ySNqPDT0fb/c8gv1oP5ISHsv89u4e0v3kxTEj3\nyb/iH2Qe3furYnm/Gt0mH98oIWX/1ukg9eieb8sm79f7t2ejTe7xZV5b6IaQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQelPK613ZPB7e\nf7opN0+Nx8OBkHpTyqa82Zd0u3+n3LYeETsh9eetnO3uqdzsdr/K5mX3sim/Wg8JIfWnlP8d\nHne7u/L89t6zp6QMhNSbUn4/vr/3+w+asgi9EVJKFqE3QkrJIvTmGNLvn5HuGo+InZD6cwzJ\nq3aJCKk3x5CcIyUipN58Cmn3tPGbDUkICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQL8H5sEkT1X9RA0AAAAAElFTkSuQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 420, + "width": 420 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "41b872c9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAaE0lEQVR4nO3d63LeRrIsUFD3I1ki3/9pt6SxtrWPjYHBTnxINNb6QdOe\nYFVFMzM4shQzywswbDn7AJiBIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAInFly4joIclh8GDL/3s9RYI/\nKRIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEXL9I394vTx9fXj69WZ4+JA+CHS5fpOen5btPH398XN4m\nL4J/7/JF+rB8/zn04Wl5//zy/PNzOMHli/T08wuX5fnnX55i98Aely/Ssvz18ddf/s9//JvX\nX8eslhG/z7l6kZ5+K9Lzf/+JpEj8TaoAly/Sr18jfXj+8/P8CiamSH/a8W/tFIm/UaRf/v3v\nIykSf6NIlSu4GkWqXMHVKFLlCq5GkSpXcDWKVLmCq1GkyhVcjSJVruBqFKlyBVejSJUruBpF\nqlzB1ShS5QquRpEqV3A1ilS5gqtRpMoVXI0iVa7gahSpcgVXo0iVK7gaRapcwdUoUuUKrkaR\n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\niYP2zBmmSKE5dTFx0J45wxQpNKcuJg7aM2eYIoXm1MXEQXvmDFOk0Jy6mDhoz5xhihSaUxcT\nB+2ZM0yRQnPqYuKgPXOGKVJoTl1MHLRnzjBFCs2pi4mD9swZdmaRliG/Dyr4rtTFxEF75gw7\ntUgDj1D3XXHQ5Q5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiR\njnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQ\nrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU6\n6jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3\nOkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo\n13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93q\nIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe\n00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuD\nFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpN\nB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qoJIi/fHx3fLDuw9/vHLFVN8V\nB13uoIoiPb9Z/vL2dSum+q446HIHVRTpw/L0+evPz759eVo+vGrFVN8VB13uoIoiPS1f//fz\nr8vTq1ZM9V1x0OUOqijSsqz9zZ//5DfrM0akBjnotgetBfM1HvATCeY38GukL99+frb5aySY\n36t/vL397Ufkm+fkSXA9A7+P9OHn7yM9vfu48ftIML8H/MkGmJ8iQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiXc2yfHu3PH38+fmnN8ubTyffw0+KdDXL8rR896NJb398srw9+yJeFOl6\nvjfn+eXT8ubl5fPy9PXl69Py+eyTUKTrWZY/fn58eXm3fPn+2Rc/khoo0tUsy6+P//ns1184\nlW/C1ShSJd+Eq1GkSr4JV/NXkX79GundyRfxokjX81eR/Fu7Iop0NX8Vye8jFVGkq/mtSC+f\nnvzJhhKKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGK\nBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAH/Ayzv44rlEgIU\nAAAAAElFTkSuQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 420, + "width": 420 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "barplot(df$A, ylab = 'A',xlab = 'no')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11001454", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "670db495", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "4.1.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 69b9b4d2cf36bfe2badf6a959c1fc2b9967b82f5 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 11 Oct 2021 21:09:21 -0500 Subject: [PATCH 20/30] fix: Solve issue with broken reference on sketchdoc image --- 1-Introduction/03-defining-data/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/03-defining-data/translations/README.es.md b/1-Introduction/03-defining-data/translations/README.es.md index 16d11409..c30a37d7 100644 --- a/1-Introduction/03-defining-data/translations/README.es.md +++ b/1-Introduction/03-defining-data/translations/README.es.md @@ -1,6 +1,6 @@ # Definiendo datos -|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/03-DefiningData.png)| |:---:| |Definiendo datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | From ef2294e698452233a9c917e4e04806f6bf56afd3 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 11 Oct 2021 21:10:59 -0500 Subject: [PATCH 21/30] feat:(translation) Improve title for module 1 section 3 --- 1-Introduction/03-defining-data/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/03-defining-data/translations/README.es.md b/1-Introduction/03-defining-data/translations/README.es.md index c30a37d7..4f709ece 100644 --- a/1-Introduction/03-defining-data/translations/README.es.md +++ b/1-Introduction/03-defining-data/translations/README.es.md @@ -1,4 +1,4 @@ -# Definiendo datos +# Definiendo los datos |![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/03-DefiningData.png)| |:---:| From 1466c6fbfbfe12bf1e3189ca0970a05bb0b7f595 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 11 Oct 2021 21:31:34 -0500 Subject: [PATCH 22/30] fix(translation): Fix broken link on assignment reference --- 1-Introduction/03-defining-data/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/03-defining-data/translations/README.es.md b/1-Introduction/03-defining-data/translations/README.es.md index 4f709ece..c59b5718 100644 --- a/1-Introduction/03-defining-data/translations/README.es.md +++ b/1-Introduction/03-defining-data/translations/README.es.md @@ -66,4 +66,4 @@ Kaggle es una fuente excelente de conjuntos de datos abiertos. Usa los [conjunto ## Assignación -[Clasificación de conjuntos de datos](assignment.md) +[Clasificación de los conjuntos de datos](../assignment.md) From 0998692372bce42a7b12329bed6b01351e8ca139 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 11 Oct 2021 21:36:46 -0500 Subject: [PATCH 23/30] fix(translation): Translate title on main readme --- 1-Introduction/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/translations/README.es.md b/1-Introduction/translations/README.es.md index e905bf11..9e29302b 100644 --- a/1-Introduction/translations/README.es.md +++ b/1-Introduction/translations/README.es.md @@ -1,4 +1,4 @@ -# Introduction to Data Science +# Introducción a la Ciencia de Datos ![Datos en acción](images/data.jpg) > Fotografía de Stephen Dawson en Unsplash From 7ac9533ebbd21677c827317e6a5e77736f0e5156 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 11 Oct 2021 21:38:35 -0500 Subject: [PATCH 24/30] fix:(translation): Add missing word (article) on link's label --- 1-Introduction/03-defining-data/translations/README.es.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/03-defining-data/translations/README.es.md b/1-Introduction/03-defining-data/translations/README.es.md index c59b5718..656be467 100644 --- a/1-Introduction/03-defining-data/translations/README.es.md +++ b/1-Introduction/03-defining-data/translations/README.es.md @@ -2,14 +2,14 @@ |![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/03-DefiningData.png)| |:---:| -|Definiendo datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | +|Definiendo los datos - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | Los datos son hechos, información, observaciones y mediciones que son usados para realizar descubrimientos y soportar decisiones informadas. Un punto de datos es una unidad simple de datos dentro de un conjunto de datos, lo cual es una colección de puntos de datos. Los conjuntos de datos pueden venir en distintos formatos y estructuras, y comúnmente se basan en su fuente, o de donde provienen los datos. Por ejemplo, las ganancias mensuales de una compañía pueden estar en una hoja de cálculo, pero los datos del ritmo cardiaco por hora de un reloj inteligente pueden estar en un formato [JSON](https://stackoverflow.com/a/383699). Es algo común para los científicos de datos el trabajar con distintos tipos de datos dentro de un conjunto de datos. Esta lección se enfoca en la identificación y clasificación de datos por sus características y sus fuentes. ## [Examen previo a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) -## Como se describen los datos +## Cómo se describen los datos Los **datos en crudo** son datos que provienen de su fuente en su estado inicial y estos no han sido analizados u organizados. Con el fin de que tenga sentido lo que sucede con un conjunto de datos, es necesario organizarlos en un formato que pueda ser entendido tanto por humanos como por la tecnología usada para analizarla a mayor detalle. La estructura de un conjunto de datos describe como está organizado y puede ser clasificado de forma estructurada, no estructurada y semi-estructurada. Estos tipos de estructuras podrían variar, dependiendo de la fuente pero finalmente caerá en una de estas categorías. ### Datos cuantitativos Los datos cuantitativos son observaciones numéricas en un conjunto de datos que puede ser típicamente analizados, medidos y usados matemáticamente. Algunos ejemplos de datos cuantitativos son: la población de un país, la altura de una persona o las ganancias trimestrales de una compañía. Con algo de análisis adicional, los datos cuantitativos podrían ser usados para descubrir tendencias de temporada en el índice de calidad del aire (AQI) o estimar la probabilidad la hora pico de embotellamiento vial en un día laboral típico. From 86e2690581a0786cdd6e748cafe31d83ccd4c29d Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 11 Oct 2021 21:43:44 -0500 Subject: [PATCH 25/30] fix: Solve issue with broken link on first image * set right path for main image on module 1 main page --- 1-Introduction/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/translations/README.es.md b/1-Introduction/translations/README.es.md index 9e29302b..75d3b4cc 100644 --- a/1-Introduction/translations/README.es.md +++ b/1-Introduction/translations/README.es.md @@ -1,6 +1,6 @@ # Introducción a la Ciencia de Datos -![Datos en acción](images/data.jpg) +![Datos en acción](../images/data.jpg) > Fotografía de Stephen Dawson en Unsplash En estas lecciones descubrirás cómo se define la Ciencia de Datos y aprenderás acerca de From 8cce81d30007bb27a71144ca34beafc25e1deed4 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Mon, 11 Oct 2021 21:47:13 -0500 Subject: [PATCH 26/30] fix(translation): Fix typo on module 1 section 3 Change Lean with Learn --- 1-Introduction/03-defining-data/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/03-defining-data/translations/README.es.md b/1-Introduction/03-defining-data/translations/README.es.md index 656be467..27ba6743 100644 --- a/1-Introduction/03-defining-data/translations/README.es.md +++ b/1-Introduction/03-defining-data/translations/README.es.md @@ -62,7 +62,7 @@ Kaggle es una fuente excelente de conjuntos de datos abiertos. Usa los [conjunto ## Revisión y auto-estudio -- Esta unidad de Microsoft Lean, titulada [clasifica tus datos](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) tiene un desglose detallado de datos estructurados, semi-estructurados y no estructurados. +- Esta unidad de Microsoft Learn, titulada [clasifica tus datos](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) tiene un desglose detallado de datos estructurados, semi-estructurados y no estructurados. ## Assignación From 36a21b89a39a82e4a4aa2bff2c95e7802ed0d3e7 Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Tue, 12 Oct 2021 06:58:20 -0700 Subject: [PATCH 27/30] added --- .../{R => 07-python/R(Bonus Lesson)}/Notebook.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 2-Working-With-Data/{R => 07-python/R(Bonus Lesson)}/Notebook.ipynb (100%) diff --git a/2-Working-With-Data/R/Notebook.ipynb b/2-Working-With-Data/07-python/R(Bonus Lesson)/Notebook.ipynb similarity index 100% rename from 2-Working-With-Data/R/Notebook.ipynb rename to 2-Working-With-Data/07-python/R(Bonus Lesson)/Notebook.ipynb From 2125afcd3054502a0deb71eb75cbe7837293ae56 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Tue, 12 Oct 2021 20:48:09 -0500 Subject: [PATCH 28/30] fix:(translation) Fix broken links on main page module 1 --- 1-Introduction/translations/README.es.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/1-Introduction/translations/README.es.md b/1-Introduction/translations/README.es.md index 75d3b4cc..592da390 100644 --- a/1-Introduction/translations/README.es.md +++ b/1-Introduction/translations/README.es.md @@ -9,10 +9,10 @@ cómo se definen los datos y un poco de probabilidad y estadística, el núcleo ### Temas -1. [Definiendo la Ciencia de Datos](01-defining-data-science/README.md) -2. [Ética de la Ciencia de Datos](02-ethics/README.md) -3. [Definición de Datos](03-defining-data/README.md) -4. [introducción a la probabilidad y estadística](04-stats-and-probability/README.md) +1. [Definiendo la Ciencia de Datos](../01-defining-data-science/README.md) +2. [Ética de la Ciencia de Datos](../02-ethics/README.md) +3. [Definición de Datos](../03-defining-data/translations/README.es.md) +4. [introducción a la probabilidad y estadística](../04-stats-and-probability/README.md) ### Créditos From b3aabac0fe1a461e012c5be6b3bc1056cdea3891 Mon Sep 17 00:00:00 2001 From: Keshav Sharma Date: Wed, 13 Oct 2021 04:58:59 -0700 Subject: [PATCH 29/30] Add Pandas in R --- .../07-python/R(Bonus Lesson)/Notebook.ipynb | 2249 ----------------- .../07-python/R/notebook.ipynb | 2131 ++++++++++++++++ 2 files changed, 2131 insertions(+), 2249 deletions(-) delete mode 100644 2-Working-With-Data/07-python/R(Bonus Lesson)/Notebook.ipynb create mode 100644 2-Working-With-Data/07-python/R/notebook.ipynb diff --git a/2-Working-With-Data/07-python/R(Bonus Lesson)/Notebook.ipynb b/2-Working-With-Data/07-python/R(Bonus Lesson)/Notebook.ipynb deleted file mode 100644 index eec49104..00000000 --- a/2-Working-With-Data/07-python/R(Bonus Lesson)/Notebook.ipynb +++ /dev/null @@ -1,2249 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "304296e3", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n", - "Attaching package: 'dplyr'\n", - "\n", - "\n", - "The following objects are masked from 'package:stats':\n", - "\n", - " filter, lag\n", - "\n", - "\n", - "The following objects are masked from 'package:base':\n", - "\n", - " intersect, setdiff, setequal, union\n", - "\n", - "\n", - "-- \u001b[1mAttaching packages\u001b[22m ------------------------------------------------------------------------------- tidyverse 1.3.1 --\n", - "\n", - "\u001b[32mv\u001b[39m \u001b[34mggplot2\u001b[39m 3.3.5 \u001b[32mv\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.4\n", - "\u001b[32mv\u001b[39m \u001b[34mtibble \u001b[39m 3.1.5 \u001b[32mv\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n", - "\u001b[32mv\u001b[39m \u001b[34mtidyr \u001b[39m 1.1.4 \u001b[32mv\u001b[39m \u001b[34mforcats\u001b[39m 0.5.1\n", - "\u001b[32mv\u001b[39m \u001b[34mreadr \u001b[39m 2.0.2 \n", - "\n", - "-- \u001b[1mConflicts\u001b[22m ---------------------------------------------------------------------------------- tidyverse_conflicts() --\n", - "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n", - "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n", - "\n", - "\n", - "Attaching package: 'lubridate'\n", - "\n", - "\n", - "The following objects are masked from 'package:base':\n", - "\n", - " date, intersect, setdiff, union\n", - "\n", - "\n", - "\n", - "Attaching package: 'zoo'\n", - "\n", - "\n", - "The following objects are masked from 'package:base':\n", - "\n", - " as.Date, as.Date.numeric\n", - "\n", - "\n", - "\n", - "Attaching package: 'xts'\n", - "\n", - "\n", - "The following objects are masked from 'package:dplyr':\n", - "\n", - " first, last\n", - "\n", - "\n" - ] - } - ], - "source": [ - "library(dplyr)\n", - "library(tidyverse)\n", - "library('lubridate')\n", - "library('zoo')\n", - "library('xts')" - ] - }, - { - "cell_type": "markdown", - "id": "d786e051", - "metadata": {}, - "source": [ - "## Series" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "f659f553", - "metadata": {}, - "outputs": [], - "source": [ - "a<- 1:9" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "9acc193d", - "metadata": {}, - "outputs": [], - "source": [ - "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f577ec14", - "metadata": {}, - "outputs": [], - "source": [ - "a1 = length(a)\n", - "b1 = length(b)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "31e069a0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " a\n", - "1 1\n", - "2 2\n", - "3 3\n", - "4 4\n", - "5 5\n", - "6 6\n", - "7 7\n", - "8 8\n", - "9 9\n" - ] - } - ], - "source": [ - "a = data.frame(a,row.names = c(1:a1))\n", - "print(a)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "29ce166e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " b\n", - "1 I\n", - "2 like\n", - "3 to\n", - "4 use\n", - "5 Python\n", - "6 and\n", - "7 Pandas\n", - "8 very\n", - "9 much\n" - ] - } - ], - "source": [ - "b = data.frame(b,row.names = c(1:b1))\n", - "print(b)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "eeb683c7", - "metadata": {}, - "outputs": [], - "source": [ - "library('ggplot2')" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "e7788ca1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1] \"length of index is 366\"\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 360, - "width": 720 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "start_date <- mdy(\"Jan 1, 2020\")\n", - "end_date <- mdy(\"Dec 31, 2020\")\n", - "idx = seq(start_date,end_date,by ='day')\n", - "print(paste(\"length of index is \",length(idx)))\n", - "size = length(idx)\n", - "sales = runif(366,min=25,max=50)\n", - "sold_items <- data.frame(row.names=idx[0:size],sales)\n", - "ggplot(sold_items,aes(x=idx,y=sales)) + geom_point(color = \"firebrick\", shape = \"diamond\", size = 2) +\n", - " geom_line(color = \"firebrick\", size = .3)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "30747f7c", - "metadata": {}, - "outputs": [], - "source": [ - "library(repr)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "48f3e762", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "366" - ], - "text/latex": [ - "366" - ], - "text/markdown": [ - "366" - ], - "text/plain": [ - "[1] 366" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#changing plot size\n", - "options(repr.plot.width = 12,repr.plot.height=6)\n", - "size" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "abe41544", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 53 × 1
additional_product
<dbl>
2020-01-0110
2020-01-0810
2020-01-1510
2020-01-2210
2020-01-2910
2020-02-0510
2020-02-1210
2020-02-1910
2020-02-2610
2020-03-0410
2020-03-1110
2020-03-1810
2020-03-2510
2020-04-0110
2020-04-0810
2020-04-1510
2020-04-2210
2020-04-2910
2020-05-0610
2020-05-1310
2020-05-2010
2020-05-2710
2020-06-0310
2020-06-1010
2020-06-1710
2020-06-2410
2020-07-0110
2020-07-0810
2020-07-1510
2020-07-2210
2020-07-2910
2020-08-0510
2020-08-1210
2020-08-1910
2020-08-2610
2020-09-0210
2020-09-0910
2020-09-1610
2020-09-2310
2020-09-3010
2020-10-0710
2020-10-1410
2020-10-2110
2020-10-2810
2020-11-0410
2020-11-1110
2020-11-1810
2020-11-2510
2020-12-0210
2020-12-0910
2020-12-1610
2020-12-2310
2020-12-3010
\n" - ], - "text/latex": [ - "A data.frame: 53 × 1\n", - "\\begin{tabular}{r|l}\n", - " & additional\\_product\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t2020-01-01 & 10\\\\\n", - "\t2020-01-08 & 10\\\\\n", - "\t2020-01-15 & 10\\\\\n", - "\t2020-01-22 & 10\\\\\n", - "\t2020-01-29 & 10\\\\\n", - "\t2020-02-05 & 10\\\\\n", - "\t2020-02-12 & 10\\\\\n", - "\t2020-02-19 & 10\\\\\n", - "\t2020-02-26 & 10\\\\\n", - "\t2020-03-04 & 10\\\\\n", - "\t2020-03-11 & 10\\\\\n", - "\t2020-03-18 & 10\\\\\n", - "\t2020-03-25 & 10\\\\\n", - "\t2020-04-01 & 10\\\\\n", - "\t2020-04-08 & 10\\\\\n", - "\t2020-04-15 & 10\\\\\n", - "\t2020-04-22 & 10\\\\\n", - "\t2020-04-29 & 10\\\\\n", - "\t2020-05-06 & 10\\\\\n", - "\t2020-05-13 & 10\\\\\n", - "\t2020-05-20 & 10\\\\\n", - "\t2020-05-27 & 10\\\\\n", - "\t2020-06-03 & 10\\\\\n", - "\t2020-06-10 & 10\\\\\n", - "\t2020-06-17 & 10\\\\\n", - "\t2020-06-24 & 10\\\\\n", - "\t2020-07-01 & 10\\\\\n", - "\t2020-07-08 & 10\\\\\n", - "\t2020-07-15 & 10\\\\\n", - "\t2020-07-22 & 10\\\\\n", - "\t2020-07-29 & 10\\\\\n", - "\t2020-08-05 & 10\\\\\n", - "\t2020-08-12 & 10\\\\\n", - "\t2020-08-19 & 10\\\\\n", - "\t2020-08-26 & 10\\\\\n", - "\t2020-09-02 & 10\\\\\n", - "\t2020-09-09 & 10\\\\\n", - "\t2020-09-16 & 10\\\\\n", - "\t2020-09-23 & 10\\\\\n", - "\t2020-09-30 & 10\\\\\n", - "\t2020-10-07 & 10\\\\\n", - "\t2020-10-14 & 10\\\\\n", - "\t2020-10-21 & 10\\\\\n", - "\t2020-10-28 & 10\\\\\n", - "\t2020-11-04 & 10\\\\\n", - "\t2020-11-11 & 10\\\\\n", - "\t2020-11-18 & 10\\\\\n", - "\t2020-11-25 & 10\\\\\n", - "\t2020-12-02 & 10\\\\\n", - "\t2020-12-09 & 10\\\\\n", - "\t2020-12-16 & 10\\\\\n", - "\t2020-12-23 & 10\\\\\n", - "\t2020-12-30 & 10\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 53 × 1\n", - "\n", - "| | additional_product <dbl> |\n", - "|---|---|\n", - "| 2020-01-01 | 10 |\n", - "| 2020-01-08 | 10 |\n", - "| 2020-01-15 | 10 |\n", - "| 2020-01-22 | 10 |\n", - "| 2020-01-29 | 10 |\n", - "| 2020-02-05 | 10 |\n", - "| 2020-02-12 | 10 |\n", - "| 2020-02-19 | 10 |\n", - "| 2020-02-26 | 10 |\n", - "| 2020-03-04 | 10 |\n", - "| 2020-03-11 | 10 |\n", - "| 2020-03-18 | 10 |\n", - "| 2020-03-25 | 10 |\n", - "| 2020-04-01 | 10 |\n", - "| 2020-04-08 | 10 |\n", - "| 2020-04-15 | 10 |\n", - "| 2020-04-22 | 10 |\n", - "| 2020-04-29 | 10 |\n", - "| 2020-05-06 | 10 |\n", - "| 2020-05-13 | 10 |\n", - "| 2020-05-20 | 10 |\n", - "| 2020-05-27 | 10 |\n", - "| 2020-06-03 | 10 |\n", - "| 2020-06-10 | 10 |\n", - "| 2020-06-17 | 10 |\n", - "| 2020-06-24 | 10 |\n", - "| 2020-07-01 | 10 |\n", - "| 2020-07-08 | 10 |\n", - "| 2020-07-15 | 10 |\n", - "| 2020-07-22 | 10 |\n", - "| 2020-07-29 | 10 |\n", - "| 2020-08-05 | 10 |\n", - "| 2020-08-12 | 10 |\n", - "| 2020-08-19 | 10 |\n", - "| 2020-08-26 | 10 |\n", - "| 2020-09-02 | 10 |\n", - "| 2020-09-09 | 10 |\n", - "| 2020-09-16 | 10 |\n", - "| 2020-09-23 | 10 |\n", - "| 2020-09-30 | 10 |\n", - "| 2020-10-07 | 10 |\n", - "| 2020-10-14 | 10 |\n", - "| 2020-10-21 | 10 |\n", - "| 2020-10-28 | 10 |\n", - "| 2020-11-04 | 10 |\n", - "| 2020-11-11 | 10 |\n", - "| 2020-11-18 | 10 |\n", - "| 2020-11-25 | 10 |\n", - "| 2020-12-02 | 10 |\n", - "| 2020-12-09 | 10 |\n", - "| 2020-12-16 | 10 |\n", - "| 2020-12-23 | 10 |\n", - "| 2020-12-30 | 10 |\n", - "\n" - ], - "text/plain": [ - " additional_product\n", - "2020-01-01 10 \n", - "2020-01-08 10 \n", - "2020-01-15 10 \n", - "2020-01-22 10 \n", - "2020-01-29 10 \n", - "2020-02-05 10 \n", - "2020-02-12 10 \n", - "2020-02-19 10 \n", - "2020-02-26 10 \n", - "2020-03-04 10 \n", - "2020-03-11 10 \n", - "2020-03-18 10 \n", - "2020-03-25 10 \n", - "2020-04-01 10 \n", - "2020-04-08 10 \n", - "2020-04-15 10 \n", - "2020-04-22 10 \n", - "2020-04-29 10 \n", - "2020-05-06 10 \n", - "2020-05-13 10 \n", - "2020-05-20 10 \n", - "2020-05-27 10 \n", - "2020-06-03 10 \n", - "2020-06-10 10 \n", - "2020-06-17 10 \n", - "2020-06-24 10 \n", - "2020-07-01 10 \n", - "2020-07-08 10 \n", - "2020-07-15 10 \n", - "2020-07-22 10 \n", - "2020-07-29 10 \n", - "2020-08-05 10 \n", - "2020-08-12 10 \n", - "2020-08-19 10 \n", - "2020-08-26 10 \n", - "2020-09-02 10 \n", - "2020-09-09 10 \n", - "2020-09-16 10 \n", - "2020-09-23 10 \n", - "2020-09-30 10 \n", - "2020-10-07 10 \n", - "2020-10-14 10 \n", - "2020-10-21 10 \n", - "2020-10-28 10 \n", - "2020-11-04 10 \n", - "2020-11-11 10 \n", - "2020-11-18 10 \n", - "2020-11-25 10 \n", - "2020-12-02 10 \n", - "2020-12-09 10 \n", - "2020-12-16 10 \n", - "2020-12-23 10 \n", - "2020-12-30 10 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 366 × 1
total
<dbl>
2020-01-0154.37099
2020-01-02 NA
2020-01-03 NA
2020-01-04 NA
2020-01-05 NA
2020-01-06 NA
2020-01-07 NA
2020-01-0851.99181
2020-01-09 NA
2020-01-10 NA
2020-01-11 NA
2020-01-12 NA
2020-01-13 NA
2020-01-14 NA
2020-01-1547.57204
2020-01-16 NA
2020-01-17 NA
2020-01-18 NA
2020-01-19 NA
2020-01-20 NA
2020-01-21 NA
2020-01-2250.46082
2020-01-23 NA
2020-01-24 NA
2020-01-25 NA
2020-01-26 NA
2020-01-27 NA
2020-01-28 NA
2020-01-2955.32913
2020-01-30 NA
......
2020-12-0247.63211
2020-12-03 NA
2020-12-04 NA
2020-12-05 NA
2020-12-06 NA
2020-12-07 NA
2020-12-08 NA
2020-12-0949.09786
2020-12-10 NA
2020-12-11 NA
2020-12-12 NA
2020-12-13 NA
2020-12-14 NA
2020-12-15 NA
2020-12-1655.27396
2020-12-17 NA
2020-12-18 NA
2020-12-19 NA
2020-12-20 NA
2020-12-21 NA
2020-12-22 NA
2020-12-2346.30954
2020-12-24 NA
2020-12-25 NA
2020-12-26 NA
2020-12-27 NA
2020-12-28 NA
2020-12-29 NA
2020-12-3043.08600
2020-12-31 NA
\n" - ], - "text/latex": [ - "A data.frame: 366 × 1\n", - "\\begin{tabular}{r|l}\n", - " & total\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t2020-01-01 & 54.37099\\\\\n", - "\t2020-01-02 & NA\\\\\n", - "\t2020-01-03 & NA\\\\\n", - "\t2020-01-04 & NA\\\\\n", - "\t2020-01-05 & NA\\\\\n", - "\t2020-01-06 & NA\\\\\n", - "\t2020-01-07 & NA\\\\\n", - "\t2020-01-08 & 51.99181\\\\\n", - "\t2020-01-09 & NA\\\\\n", - "\t2020-01-10 & NA\\\\\n", - "\t2020-01-11 & NA\\\\\n", - "\t2020-01-12 & NA\\\\\n", - "\t2020-01-13 & NA\\\\\n", - "\t2020-01-14 & NA\\\\\n", - "\t2020-01-15 & 47.57204\\\\\n", - "\t2020-01-16 & NA\\\\\n", - "\t2020-01-17 & NA\\\\\n", - "\t2020-01-18 & NA\\\\\n", - "\t2020-01-19 & NA\\\\\n", - "\t2020-01-20 & NA\\\\\n", - "\t2020-01-21 & NA\\\\\n", - "\t2020-01-22 & 50.46082\\\\\n", - "\t2020-01-23 & NA\\\\\n", - "\t2020-01-24 & NA\\\\\n", - "\t2020-01-25 & NA\\\\\n", - "\t2020-01-26 & NA\\\\\n", - "\t2020-01-27 & NA\\\\\n", - "\t2020-01-28 & NA\\\\\n", - "\t2020-01-29 & 55.32913\\\\\n", - "\t2020-01-30 & NA\\\\\n", - "\t... & ...\\\\\n", - "\t2020-12-02 & 47.63211\\\\\n", - "\t2020-12-03 & NA\\\\\n", - "\t2020-12-04 & NA\\\\\n", - "\t2020-12-05 & NA\\\\\n", - "\t2020-12-06 & NA\\\\\n", - "\t2020-12-07 & NA\\\\\n", - "\t2020-12-08 & NA\\\\\n", - "\t2020-12-09 & 49.09786\\\\\n", - "\t2020-12-10 & NA\\\\\n", - "\t2020-12-11 & NA\\\\\n", - "\t2020-12-12 & NA\\\\\n", - "\t2020-12-13 & NA\\\\\n", - "\t2020-12-14 & NA\\\\\n", - "\t2020-12-15 & NA\\\\\n", - "\t2020-12-16 & 55.27396\\\\\n", - "\t2020-12-17 & NA\\\\\n", - "\t2020-12-18 & NA\\\\\n", - "\t2020-12-19 & NA\\\\\n", - "\t2020-12-20 & NA\\\\\n", - "\t2020-12-21 & NA\\\\\n", - "\t2020-12-22 & NA\\\\\n", - "\t2020-12-23 & 46.30954\\\\\n", - "\t2020-12-24 & NA\\\\\n", - "\t2020-12-25 & NA\\\\\n", - "\t2020-12-26 & NA\\\\\n", - "\t2020-12-27 & NA\\\\\n", - "\t2020-12-28 & NA\\\\\n", - "\t2020-12-29 & NA\\\\\n", - "\t2020-12-30 & 43.08600\\\\\n", - "\t2020-12-31 & NA\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 366 × 1\n", - "\n", - "| | total <dbl> |\n", - "|---|---|\n", - "| 2020-01-01 | 54.37099 |\n", - "| 2020-01-02 | NA |\n", - "| 2020-01-03 | NA |\n", - "| 2020-01-04 | NA |\n", - "| 2020-01-05 | NA |\n", - "| 2020-01-06 | NA |\n", - "| 2020-01-07 | NA |\n", - "| 2020-01-08 | 51.99181 |\n", - "| 2020-01-09 | NA |\n", - "| 2020-01-10 | NA |\n", - "| 2020-01-11 | NA |\n", - "| 2020-01-12 | NA |\n", - "| 2020-01-13 | NA |\n", - "| 2020-01-14 | NA |\n", - "| 2020-01-15 | 47.57204 |\n", - "| 2020-01-16 | NA |\n", - "| 2020-01-17 | NA |\n", - "| 2020-01-18 | NA |\n", - "| 2020-01-19 | NA |\n", - "| 2020-01-20 | NA |\n", - "| 2020-01-21 | NA |\n", - "| 2020-01-22 | 50.46082 |\n", - "| 2020-01-23 | NA |\n", - "| 2020-01-24 | NA |\n", - "| 2020-01-25 | NA |\n", - "| 2020-01-26 | NA |\n", - "| 2020-01-27 | NA |\n", - "| 2020-01-28 | NA |\n", - "| 2020-01-29 | 55.32913 |\n", - "| 2020-01-30 | NA |\n", - "| ... | ... |\n", - "| 2020-12-02 | 47.63211 |\n", - "| 2020-12-03 | NA |\n", - "| 2020-12-04 | NA |\n", - "| 2020-12-05 | NA |\n", - "| 2020-12-06 | NA |\n", - "| 2020-12-07 | NA |\n", - "| 2020-12-08 | NA |\n", - "| 2020-12-09 | 49.09786 |\n", - "| 2020-12-10 | NA |\n", - "| 2020-12-11 | NA |\n", - "| 2020-12-12 | NA |\n", - "| 2020-12-13 | NA |\n", - "| 2020-12-14 | NA |\n", - "| 2020-12-15 | NA |\n", - "| 2020-12-16 | 55.27396 |\n", - "| 2020-12-17 | NA |\n", - "| 2020-12-18 | NA |\n", - "| 2020-12-19 | NA |\n", - "| 2020-12-20 | NA |\n", - "| 2020-12-21 | NA |\n", - "| 2020-12-22 | NA |\n", - "| 2020-12-23 | 46.30954 |\n", - "| 2020-12-24 | NA |\n", - "| 2020-12-25 | NA |\n", - "| 2020-12-26 | NA |\n", - "| 2020-12-27 | NA |\n", - "| 2020-12-28 | NA |\n", - "| 2020-12-29 | NA |\n", - "| 2020-12-30 | 43.08600 |\n", - "| 2020-12-31 | NA |\n", - "\n" - ], - "text/plain": [ - " total \n", - "2020-01-01 54.37099\n", - "2020-01-02 NA\n", - "2020-01-03 NA\n", - "2020-01-04 NA\n", - "2020-01-05 NA\n", - "2020-01-06 NA\n", - "2020-01-07 NA\n", - "2020-01-08 51.99181\n", - "2020-01-09 NA\n", - "2020-01-10 NA\n", - "2020-01-11 NA\n", - "2020-01-12 NA\n", - "2020-01-13 NA\n", - "2020-01-14 NA\n", - "2020-01-15 47.57204\n", - "2020-01-16 NA\n", - "2020-01-17 NA\n", - "2020-01-18 NA\n", - "2020-01-19 NA\n", - "2020-01-20 NA\n", - "2020-01-21 NA\n", - "2020-01-22 50.46082\n", - "2020-01-23 NA\n", - "2020-01-24 NA\n", - "2020-01-25 NA\n", - "2020-01-26 NA\n", - "2020-01-27 NA\n", - "2020-01-28 NA\n", - "2020-01-29 55.32913\n", - "2020-01-30 NA\n", - "... ... \n", - "2020-12-02 47.63211\n", - "2020-12-03 NA\n", - "2020-12-04 NA\n", - "2020-12-05 NA\n", - "2020-12-06 NA\n", - "2020-12-07 NA\n", - "2020-12-08 NA\n", - "2020-12-09 49.09786\n", - "2020-12-10 NA\n", - "2020-12-11 NA\n", - "2020-12-12 NA\n", - "2020-12-13 NA\n", - "2020-12-14 NA\n", - "2020-12-15 NA\n", - "2020-12-16 55.27396\n", - "2020-12-17 NA\n", - "2020-12-18 NA\n", - "2020-12-19 NA\n", - "2020-12-20 NA\n", - "2020-12-21 NA\n", - "2020-12-22 NA\n", - "2020-12-23 46.30954\n", - "2020-12-24 NA\n", - "2020-12-25 NA\n", - "2020-12-26 NA\n", - "2020-12-27 NA\n", - "2020-12-28 NA\n", - "2020-12-29 NA\n", - "2020-12-30 43.08600\n", - "2020-12-31 NA" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "index = seq(start_date,end_date,by = 'week')\n", - "sz = length(index)\n", - "additional_product <- rep(10,53)\n", - "additional_items <- data.frame(row.names = index[0:sz],additional_product)\n", - "additional_items\n", - "# we are merging two dataframe so that we can add\n", - "additional_item = merge(additional_items,sold_items, by = 0, all = TRUE)[-1] \n", - "total = data.frame(row.names=idx[0:size],additional_item$additional_product + additional_item$sales)\n", - "colnames(total) = c('total')\n", - "total" - ] - }, - { - "cell_type": "markdown", - "id": "cb00ff6e", - "metadata": {}, - "source": [ - "\n", - "### As you can see, we are having problems here, because in the weekly series non-mentioned days are considered to be missing (NaN), if we add NaN to a number gives us NaN. In order todo addition, we need to fill the value 0 of additional_items while adding series: \n" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "387cb4c2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 366 × 1
total
<dbl>
2020-01-0154.37099
2020-01-0227.85566
2020-01-0338.29037
2020-01-0426.72367
2020-01-0537.93330
2020-01-0638.70961
2020-01-0728.36133
2020-01-0851.99181
2020-01-0944.76469
2020-01-1026.54058
2020-01-1131.70327
2020-01-1237.83133
2020-01-1347.45717
2020-01-1431.78909
2020-01-1547.57204
2020-01-1643.79414
2020-01-1746.35117
2020-01-1840.18666
2020-01-1934.65751
2020-01-2038.09664
2020-01-2136.76733
2020-01-2250.46082
2020-01-2339.62032
2020-01-2444.56143
2020-01-2526.45657
2020-01-2645.48089
2020-01-2749.03699
2020-01-2846.05290
2020-01-2955.32913
2020-01-3044.83293
......
2020-12-0247.63211
2020-12-0349.44946
2020-12-0428.07843
2020-12-0549.80941
2020-12-0637.43425
2020-12-0732.36442
2020-12-0837.96258
2020-12-0949.09786
2020-12-1043.08738
2020-12-1136.93554
2020-12-1233.44147
2020-12-1335.24588
2020-12-1447.67855
2020-12-1541.84728
2020-12-1655.27396
2020-12-1732.23195
2020-12-1830.18391
2020-12-1939.27033
2020-12-2045.13756
2020-12-2143.00961
2020-12-2243.69411
2020-12-2346.30954
2020-12-2437.42397
2020-12-2535.94406
2020-12-2645.00482
2020-12-2731.81550
2020-12-2832.69022
2020-12-2931.52063
2020-12-3043.08600
2020-12-3139.28333
\n" - ], - "text/latex": [ - "A data.frame: 366 × 1\n", - "\\begin{tabular}{r|l}\n", - " & total\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t2020-01-01 & 54.37099\\\\\n", - "\t2020-01-02 & 27.85566\\\\\n", - "\t2020-01-03 & 38.29037\\\\\n", - "\t2020-01-04 & 26.72367\\\\\n", - "\t2020-01-05 & 37.93330\\\\\n", - "\t2020-01-06 & 38.70961\\\\\n", - "\t2020-01-07 & 28.36133\\\\\n", - "\t2020-01-08 & 51.99181\\\\\n", - "\t2020-01-09 & 44.76469\\\\\n", - "\t2020-01-10 & 26.54058\\\\\n", - "\t2020-01-11 & 31.70327\\\\\n", - "\t2020-01-12 & 37.83133\\\\\n", - "\t2020-01-13 & 47.45717\\\\\n", - "\t2020-01-14 & 31.78909\\\\\n", - "\t2020-01-15 & 47.57204\\\\\n", - "\t2020-01-16 & 43.79414\\\\\n", - "\t2020-01-17 & 46.35117\\\\\n", - "\t2020-01-18 & 40.18666\\\\\n", - "\t2020-01-19 & 34.65751\\\\\n", - "\t2020-01-20 & 38.09664\\\\\n", - "\t2020-01-21 & 36.76733\\\\\n", - "\t2020-01-22 & 50.46082\\\\\n", - "\t2020-01-23 & 39.62032\\\\\n", - "\t2020-01-24 & 44.56143\\\\\n", - "\t2020-01-25 & 26.45657\\\\\n", - "\t2020-01-26 & 45.48089\\\\\n", - "\t2020-01-27 & 49.03699\\\\\n", - "\t2020-01-28 & 46.05290\\\\\n", - "\t2020-01-29 & 55.32913\\\\\n", - "\t2020-01-30 & 44.83293\\\\\n", - "\t... & ...\\\\\n", - "\t2020-12-02 & 47.63211\\\\\n", - "\t2020-12-03 & 49.44946\\\\\n", - "\t2020-12-04 & 28.07843\\\\\n", - "\t2020-12-05 & 49.80941\\\\\n", - "\t2020-12-06 & 37.43425\\\\\n", - "\t2020-12-07 & 32.36442\\\\\n", - "\t2020-12-08 & 37.96258\\\\\n", - "\t2020-12-09 & 49.09786\\\\\n", - "\t2020-12-10 & 43.08738\\\\\n", - "\t2020-12-11 & 36.93554\\\\\n", - "\t2020-12-12 & 33.44147\\\\\n", - "\t2020-12-13 & 35.24588\\\\\n", - "\t2020-12-14 & 47.67855\\\\\n", - "\t2020-12-15 & 41.84728\\\\\n", - "\t2020-12-16 & 55.27396\\\\\n", - "\t2020-12-17 & 32.23195\\\\\n", - "\t2020-12-18 & 30.18391\\\\\n", - "\t2020-12-19 & 39.27033\\\\\n", - "\t2020-12-20 & 45.13756\\\\\n", - "\t2020-12-21 & 43.00961\\\\\n", - "\t2020-12-22 & 43.69411\\\\\n", - "\t2020-12-23 & 46.30954\\\\\n", - "\t2020-12-24 & 37.42397\\\\\n", - "\t2020-12-25 & 35.94406\\\\\n", - "\t2020-12-26 & 45.00482\\\\\n", - "\t2020-12-27 & 31.81550\\\\\n", - "\t2020-12-28 & 32.69022\\\\\n", - "\t2020-12-29 & 31.52063\\\\\n", - "\t2020-12-30 & 43.08600\\\\\n", - "\t2020-12-31 & 39.28333\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 366 × 1\n", - "\n", - "| | total <dbl> |\n", - "|---|---|\n", - "| 2020-01-01 | 54.37099 |\n", - "| 2020-01-02 | 27.85566 |\n", - "| 2020-01-03 | 38.29037 |\n", - "| 2020-01-04 | 26.72367 |\n", - "| 2020-01-05 | 37.93330 |\n", - "| 2020-01-06 | 38.70961 |\n", - "| 2020-01-07 | 28.36133 |\n", - "| 2020-01-08 | 51.99181 |\n", - "| 2020-01-09 | 44.76469 |\n", - "| 2020-01-10 | 26.54058 |\n", - "| 2020-01-11 | 31.70327 |\n", - "| 2020-01-12 | 37.83133 |\n", - "| 2020-01-13 | 47.45717 |\n", - "| 2020-01-14 | 31.78909 |\n", - "| 2020-01-15 | 47.57204 |\n", - "| 2020-01-16 | 43.79414 |\n", - "| 2020-01-17 | 46.35117 |\n", - "| 2020-01-18 | 40.18666 |\n", - "| 2020-01-19 | 34.65751 |\n", - "| 2020-01-20 | 38.09664 |\n", - "| 2020-01-21 | 36.76733 |\n", - "| 2020-01-22 | 50.46082 |\n", - "| 2020-01-23 | 39.62032 |\n", - "| 2020-01-24 | 44.56143 |\n", - "| 2020-01-25 | 26.45657 |\n", - "| 2020-01-26 | 45.48089 |\n", - "| 2020-01-27 | 49.03699 |\n", - "| 2020-01-28 | 46.05290 |\n", - "| 2020-01-29 | 55.32913 |\n", - "| 2020-01-30 | 44.83293 |\n", - "| ... | ... |\n", - "| 2020-12-02 | 47.63211 |\n", - "| 2020-12-03 | 49.44946 |\n", - "| 2020-12-04 | 28.07843 |\n", - "| 2020-12-05 | 49.80941 |\n", - "| 2020-12-06 | 37.43425 |\n", - "| 2020-12-07 | 32.36442 |\n", - "| 2020-12-08 | 37.96258 |\n", - "| 2020-12-09 | 49.09786 |\n", - "| 2020-12-10 | 43.08738 |\n", - "| 2020-12-11 | 36.93554 |\n", - "| 2020-12-12 | 33.44147 |\n", - "| 2020-12-13 | 35.24588 |\n", - "| 2020-12-14 | 47.67855 |\n", - "| 2020-12-15 | 41.84728 |\n", - "| 2020-12-16 | 55.27396 |\n", - "| 2020-12-17 | 32.23195 |\n", - "| 2020-12-18 | 30.18391 |\n", - "| 2020-12-19 | 39.27033 |\n", - "| 2020-12-20 | 45.13756 |\n", - "| 2020-12-21 | 43.00961 |\n", - "| 2020-12-22 | 43.69411 |\n", - "| 2020-12-23 | 46.30954 |\n", - "| 2020-12-24 | 37.42397 |\n", - "| 2020-12-25 | 35.94406 |\n", - "| 2020-12-26 | 45.00482 |\n", - "| 2020-12-27 | 31.81550 |\n", - "| 2020-12-28 | 32.69022 |\n", - "| 2020-12-29 | 31.52063 |\n", - "| 2020-12-30 | 43.08600 |\n", - "| 2020-12-31 | 39.28333 |\n", - "\n" - ], - "text/plain": [ - " total \n", - "2020-01-01 54.37099\n", - "2020-01-02 27.85566\n", - "2020-01-03 38.29037\n", - "2020-01-04 26.72367\n", - "2020-01-05 37.93330\n", - "2020-01-06 38.70961\n", - "2020-01-07 28.36133\n", - "2020-01-08 51.99181\n", - "2020-01-09 44.76469\n", - "2020-01-10 26.54058\n", - "2020-01-11 31.70327\n", - "2020-01-12 37.83133\n", - "2020-01-13 47.45717\n", - "2020-01-14 31.78909\n", - "2020-01-15 47.57204\n", - "2020-01-16 43.79414\n", - "2020-01-17 46.35117\n", - "2020-01-18 40.18666\n", - "2020-01-19 34.65751\n", - "2020-01-20 38.09664\n", - "2020-01-21 36.76733\n", - "2020-01-22 50.46082\n", - "2020-01-23 39.62032\n", - "2020-01-24 44.56143\n", - "2020-01-25 26.45657\n", - "2020-01-26 45.48089\n", - "2020-01-27 49.03699\n", - "2020-01-28 46.05290\n", - "2020-01-29 55.32913\n", - "2020-01-30 44.83293\n", - "... ... \n", - "2020-12-02 47.63211\n", - "2020-12-03 49.44946\n", - "2020-12-04 28.07843\n", - "2020-12-05 49.80941\n", - "2020-12-06 37.43425\n", - "2020-12-07 32.36442\n", - "2020-12-08 37.96258\n", - "2020-12-09 49.09786\n", - "2020-12-10 43.08738\n", - "2020-12-11 36.93554\n", - "2020-12-12 33.44147\n", - "2020-12-13 35.24588\n", - "2020-12-14 47.67855\n", - "2020-12-15 41.84728\n", - "2020-12-16 55.27396\n", - "2020-12-17 32.23195\n", - "2020-12-18 30.18391\n", - "2020-12-19 39.27033\n", - "2020-12-20 45.13756\n", - "2020-12-21 43.00961\n", - "2020-12-22 43.69411\n", - "2020-12-23 46.30954\n", - "2020-12-24 37.42397\n", - "2020-12-25 35.94406\n", - "2020-12-26 45.00482\n", - "2020-12-27 31.81550\n", - "2020-12-28 32.69022\n", - "2020-12-29 31.52063\n", - "2020-12-30 43.08600\n", - "2020-12-31 39.28333" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "additional_item[is.na(additional_item)] = 0\n", - "total = data.frame(row.names=idx[0:size],additional_item$additional_product + additional_item$sales)\n", - "colnames(total) = c('total')\n", - "total" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "bdb60236", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABaAAAALQCAMAAABR+ye1AAAAOVBMVEUAAAAzMzNNTU1oaGh8\nfHyMjIyampqnp6eyIiKysrK9vb3Hx8fQ0NDZ2dnh4eHp6enr6+vw8PD///+vl18TAAAACXBI\nWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO19ibbjOI5sdlb1tGam37TL//+xr64XWSKxBEBQ\nImXEOVVpSyQIbkEwROv+uicSiURiSPw624FEIpFI0EiCTiQSiUGRBJ1IJBKDIgk6kUgkBkUS\ndCKRSAyKJOhEIpEYFEnQiUQiMSiSoBOJRGJQeAn61oTG7F2RvvmQvjkxtHPpnR8NziVB80jf\nfEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTO\njyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjfnBjaufTOjyToLkjffEjf\nnBjaufTOj4MI+vff2P6bBH0e0jcfRvZtbOfSOz+OIejfr//9Xr8kQZ+G9M2HkX0b27n0zo8k\n6C5I33xI35wY2rn0zo8DCfqeBD0E0jcfRvZtbOfSOz+OIuin9vwh6H/8QMuWSCQSiUboBP1i\n54ygB0D65sPIvo3tXHrnR2rQXZC++ZC+OTG0c+mdH0nQXZC++ZC+OTG0c+mdH0nQXZC++ZC+\nOTG0c+mdH0nQXZC++ZC+OTG0c+mdH/lLwi5I33xI35wY2rn0zo98F0cXpG8+pG9ODO1ceudH\nEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9O\nDO1ceudHEnQXpG8+pG9ODO1ceudHEnQXpG8+pG9ODO0c6d2yHO4Gg6HbLgm6C9I3H9I3J4Z2\njvJuWYZh6KHbLgm6C9I3H9I3J4Z2jvBuWcZh6KHbLgm6C9I3H9I3J4Z2rvJueeMUb0oM3XZJ\n0F2QvvmQvjkxtHO1d0nQKJKguyB98yF9c2Jo51Li8CMJugvSNx/SNyeGdi4fEvqRBN0F6ZsP\n6ZsTQzuXx+z8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdo71L\niQNBEnQXpG8+pG9ODO1cErQfSdBdkL75kL45MbRz6Z0fSdBdkL75kL45MbRz6Z0fSdBdkL75\n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\n9y4JugscvrWSzxcQdN+D5BrOHW+dj9n1RUocbiRBd4Hdt4p8Jpc4OmjQvX/qo2Dk8Ta2c0nQ\nfiRBd4HZt5p8JifoeA26w28x55E4NAztXHrnRxJ0FwRE0GYDaMKUOD4GLYlHHm9jO5fe+ZEE\n3QWpQftw7EPC6/wMfWznUuLwIwm6C9pPcfSTWi0SR4MX4x+zM9L9yONtbOeSoP1Igu6CgFcj\ndGNoA0G3eNGFoCNhFUxGHm9jO5fe+ZEE3QWtvjnU1iaJgy7r+EMTB/ap+ZHjyONtbOfSOz+S\noLug0TfPeYUWgibLajw1kRH0kRjauZQ4/EiC7oITImgYtW9caU387Mp4aJ+mBn0UkqDdSILu\ngpk0aCFSbuJnT9Zj+zRPcRwE1LtzfoU0dNslQXdBu2/2v3mLpqx8E6SMJn52ZL52n3bE0M6h\n3p30O9Gh2y4JugsO980wtHGJo8mbJOgjMbRzoHfhPxQFMXTbJUF3wdG+WYY2+pDwKH+2yD51\nYmjnMO/ankk3YOi2S4LugoN9M41t/JhdA5wzLfvUiaGdM0XQnV0hMHTbnUrQiSg8x/bZXmwx\nljeJGTDaGL4MMoIuMZcGPQ7SNyeGds5wiqOrGwyGbruUOLrgeN8aTnEMhPTNiaGdS+/8SILu\ngvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGd\nS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTN\nh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8\nSILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TN\niaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILu\ngvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGd\nS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTNh/TNiaGdS+/8SILugvTN\nh/TNiaGdS+/8OJWg2/CPU0qdH9luPmS7uZFN50ZI0yVBz4RsNx+y3dzIpnMjCfrrkO3mQ7ab\nG9l0biRBfx2y3XzIdnMjm86NiQk6kUgkEiqSoBOJRGJQJEEnEonEoEiCTiQSiUGRBJ1IJBKD\nIgk6kUgkBkVXgv7NXf8b0r/fjmw3N37XH7PVdPBtka2nwTpb+RwUziDo36//cf9+O34zjZDt\npqMm6Gw1FW8C2V7a/putJ8HIckVDa0iCHg9J0H4kQTtABHZJ0DCsBM1NbxrdCfoV2P++F1ui\nspOz01f8frfEp+m2N7PdBJQzor5Mfv9q/N5+eM7XvYCRrSfByHJ3W7v1Juh1tjz9J++R378X\n75Z6N1kubAYkQduxJWiq8bL1RBhZ7m5rt0MkDqJD15r8pr9/MX7f981RzpVsNwE0x2SrSagI\n+r5vmGw9EUaWu9varT9Bv/ZM6/fPrex0CusimwTtQBK0HUnQTTCy3N3Wbv016Du1tvze/6/6\n/sX4/QRN0NluCsh2y1YToRB0tp4MI8vdbe3Wi6B3s6Ryne7p7PQfSBF0tpsAcsitN7LVeJSR\n8X3bMNl6PDwsd7e12xEEXQX/v/dpqu/fjE8brQ8Jy3vZbiTIIXfPVtOxOQfNrG7ZeiQ8LHe3\ntVs3iWPz+5lybXnv4e+bf7bfvxobgl6P2b0vZbuJoIZcthqEza/c1sZZv2brsfCw3CAEnWhF\njv9E4tuRBD0skqATiW9HEvSwSIJOJL4dSdCJRCIxKJKgE4lEYlAkQScSicSgSIJOJBKJQZEE\nnUgkEoMiCTqRSCQGRRJ04rr49av+lEhMhBy3iesiCToxOXLcJr4BSdCJKZHjNnFdPGj5P3/+\n+ufPp3/++r/7/f9+/Xm2U4kEjiToxHXxQ9B//f7169c///70168/7vc/f1g6kZgFSdCJ6+KH\noP/1d8z8158/n/7717//99e/zvYpkTAgCTpxXfzQ8h+//nO//+chduQ7jBOzIQk6cV380PLz\n8eDj///769f/nuxRImFCEnTiukiCTkyOJOjEdVFKHH/8kRJHYiokQSeui+ejwT//ur8fEv77\n13+f7VMiYUASdOK6qI/Z/fHrr7OdSiRwJEEnrovnD1X+ufuhyj/PdiqRwJEEnUgkEoMiCTqR\nSCQGRRJ0IpFIDIok6EQikRgUSdCJRCIxKJKgE4lEYlAkQScSicSgSIJOJBKJQZEEnUgkEoMi\nCTqRSCQGRRJ0IpFIDIok6EQikRgU/x+22CwvTrb4CQAAAABJRU5ErkJggg==", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 360, - "width": 720 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "ggplot(total,aes(x=idx,y=total)) + geom_point(color = \"firebrick\", shape = \"diamond\", size = 2) +\n", - " geom_line(color = \"firebrick\", linetype = \"dotted\", size = .3)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "294dde87", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n" - ], - "text/latex": [ - "\\begin{enumerate*}\n", - "\\item 2020-01-01\n", - "\\item 2020-02-01\n", - "\\item 2020-03-01\n", - "\\item 2020-04-01\n", - "\\item 2020-05-01\n", - "\\item 2020-06-01\n", - "\\item 2020-07-01\n", - "\\item 2020-08-01\n", - "\\item 2020-09-01\n", - "\\item 2020-10-01\n", - "\\item 2020-11-01\n", - "\\item 2020-12-01\n", - "\\end{enumerate*}\n" - ], - "text/markdown": [ - "1. 2020-01-01\n", - "2. 2020-02-01\n", - "3. 2020-03-01\n", - "4. 2020-04-01\n", - "5. 2020-05-01\n", - "6. 2020-06-01\n", - "7. 2020-07-01\n", - "8. 2020-08-01\n", - "9. 2020-09-01\n", - "10. 2020-10-01\n", - "11. 2020-11-01\n", - "12. 2020-12-01\n", - "\n", - "\n" - ], - "text/plain": [ - " [1] \"2020-01-01\" \"2020-02-01\" \"2020-03-01\" \"2020-04-01\" \"2020-05-01\"\n", - " [6] \"2020-06-01\" \"2020-07-01\" \"2020-08-01\" \"2020-09-01\" \"2020-10-01\"\n", - "[11] \"2020-11-01\" \"2020-12-01\"" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "index = seq(start_date,end_date,by ='month')\n", - "index" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "7542d95e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - " total\n", - "2020-01-31 40.12725\n", - "2020-02-29 36.38809\n", - "2020-03-31 36.63476\n", - "2020-04-30 36.69513\n", - "2020-05-31 40.12267\n", - "2020-06-30 38.04770\n", - "2020-07-31 39.38036\n", - "2020-08-31 37.60016\n", - "2020-09-30 37.76963\n", - "2020-10-31 38.57457\n", - "2020-11-30 38.38480\n", - "2020-12-31 39.73959" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nycRWwgAAAABJRU5ErkJggg==", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 360, - "width": 720 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "x<- as.xts(total, dateFormat =\"Date\")\n", - "(monthly<-apply.monthly(x,mean))\n", - "ggplot(monthly, aes(x=index, y=total)) + \n", - " geom_bar(stat = \"identity\", width=5) " - ] - }, - { - "cell_type": "markdown", - "id": "945feffd", - "metadata": {}, - "source": [ - "## DataFrame" - ] - }, - { - "cell_type": "code", - "execution_count": 196, - "id": "d38f1754", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Warning message in seq_len(head.end.idx):\n", - "\"first element used of 'length.out' argument\"\n", - "ERROR while rich displaying an object: Error in seq_len(head.end.idx): argument must be coercible to non-negative integer\n", - "\n", - "Traceback:\n", - "1. FUN(X[[i]], ...)\n", - "2. tryCatch(withCallingHandlers({\n", - " . if (!mime %in% names(repr::mime2repr)) \n", - " . stop(\"No repr_* for mimetype \", mime, \" in repr::mime2repr\")\n", - " . rpr <- repr::mime2repr[[mime]](obj)\n", - " . if (is.null(rpr)) \n", - " . return(NULL)\n", - " . prepare_content(is.raw(rpr), rpr)\n", - " . }, error = error_handler), error = outer_handler)\n", - "3. tryCatchList(expr, classes, parentenv, handlers)\n", - "4. tryCatchOne(expr, names, parentenv, handlers[[1L]])\n", - "5. doTryCatch(return(expr), name, parentenv, handler)\n", - "6. withCallingHandlers({\n", - " . if (!mime %in% names(repr::mime2repr)) \n", - " . stop(\"No repr_* for mimetype \", mime, \" in repr::mime2repr\")\n", - " . rpr <- repr::mime2repr[[mime]](obj)\n", - " . if (is.null(rpr)) \n", - " . return(NULL)\n", - " . prepare_content(is.raw(rpr), rpr)\n", - " . }, error = error_handler)\n", - "7. repr::mime2repr[[mime]](obj)\n", - "8. repr_html.help_files_with_topic(obj)\n", - "9. repr_help_files_with_topic_generic(obj, Rd2HTML)\n" - ] - } - ], - "source": [ - "?vector" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "88a435ec", - "metadata": {}, - "outputs": [], - "source": [ - "a = data.frame(a,row.names = c(1:a1))" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "c4e2a6c1", - "metadata": {}, - "outputs": [], - "source": [ - "b = data.frame(b,row.names = c(1:b1))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "2bb5177c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 2
ab
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" - ], - "text/latex": [ - "A data.frame: 9 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & a & b\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like \\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\t5 & 5 & Python\\\\\n", - "\t6 & 6 & and \\\\\n", - "\t7 & 7 & Pandas\\\\\n", - "\t8 & 8 & very \\\\\n", - "\t9 & 9 & much \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 2\n", - "\n", - "| | a <int> | b <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "| 5 | 5 | Python |\n", - "| 6 | 6 | and |\n", - "| 7 | 7 | Pandas |\n", - "| 8 | 8 | very |\n", - "| 9 | 9 | much |\n", - "\n" - ], - "text/plain": [ - " a b \n", - "1 1 I \n", - "2 2 like \n", - "3 3 to \n", - "4 4 use \n", - "5 5 Python\n", - "6 6 and \n", - "7 7 Pandas\n", - "8 8 very \n", - "9 9 much " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df<- data.frame(a,b)\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "8f45d3a5", - "metadata": {}, - "outputs": [], - "source": [ - "df = \n", - " rename(df,\n", - " A = a,\n", - " B = b,\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "0efbf2d4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" - ], - "text/latex": [ - "A data.frame: 9 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like \\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\t5 & 5 & Python\\\\\n", - "\t6 & 6 & and \\\\\n", - "\t7 & 7 & Pandas\\\\\n", - "\t8 & 8 & very \\\\\n", - "\t9 & 9 & much \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "| 5 | 5 | Python |\n", - "| 6 | 6 | and |\n", - "| 7 | 7 | Pandas |\n", - "| 8 | 8 | very |\n", - "| 9 | 9 | much |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like \n", - "3 3 to \n", - "4 4 use \n", - "5 5 Python\n", - "6 6 and \n", - "7 7 Pandas\n", - "8 8 very \n", - "9 9 much " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "88b51fdc", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Column A (series):\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" - ], - "text/latex": [ - "A data.frame: 9 × 1\n", - "\\begin{tabular}{r|l}\n", - " & A\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t1 & 1\\\\\n", - "\t2 & 2\\\\\n", - "\t3 & 3\\\\\n", - "\t4 & 4\\\\\n", - "\t5 & 5\\\\\n", - "\t6 & 6\\\\\n", - "\t7 & 7\\\\\n", - "\t8 & 8\\\\\n", - "\t9 & 9\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 1\n", - "\n", - "| | A <int> |\n", - "|---|---|\n", - "| 1 | 1 |\n", - "| 2 | 2 |\n", - "| 3 | 3 |\n", - "| 4 | 4 |\n", - "| 5 | 5 |\n", - "| 6 | 6 |\n", - "| 7 | 7 |\n", - "| 8 | 8 |\n", - "| 9 | 9 |\n", - "\n" - ], - "text/plain": [ - " A\n", - "1 1\n", - "2 2\n", - "3 3\n", - "4 4\n", - "5 5\n", - "6 6\n", - "7 7\n", - "8 8\n", - "9 9" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "cat(\"Column A (series):\\n\")\n", - "select(df,'A')" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "010bcba8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" - ], - "text/latex": [ - "A data.frame: 4 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I \\\\\n", - "\t2 & 2 & like\\\\\n", - "\t3 & 3 & to \\\\\n", - "\t4 & 4 & use \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 4 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 1 | 1 | I |\n", - "| 2 | 2 | like |\n", - "| 3 | 3 | to |\n", - "| 4 | 4 | use |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "1 1 I \n", - "2 2 like\n", - "3 3 to \n", - "4 4 use " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A<5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "082277db", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" - ], - "text/latex": [ - "A data.frame: 1 × 2\n", - "\\begin{tabular}{r|ll}\n", - " & A & B\\\\\n", - " & & \\\\\n", - "\\hline\n", - "\t6 & 6 & and\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 1 × 2\n", - "\n", - "| | A <int> | B <chr> |\n", - "|---|---|---|\n", - "| 6 | 6 | and |\n", - "\n" - ], - "text/plain": [ - " A B \n", - "6 6 and" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[df$A>5 & df$A<7,]" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "0bbd19f8", - "metadata": {}, - "outputs": [], - "source": [ - "df$DivA <- df$A - mean(df$A)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "f36d96af", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" - ], - "text/latex": [ - "A data.frame: 9 × 3\n", - "\\begin{tabular}{r|lll}\n", - " & A & B & DivA\\\\\n", - " & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4\\\\\n", - "\t2 & 2 & like & -3\\\\\n", - "\t3 & 3 & to & -2\\\\\n", - "\t4 & 4 & use & -1\\\\\n", - "\t5 & 5 & Python & 0\\\\\n", - "\t6 & 6 & and & 1\\\\\n", - "\t7 & 7 & Pandas & 2\\\\\n", - "\t8 & 8 & very & 3\\\\\n", - "\t9 & 9 & much & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 3\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> |\n", - "|---|---|---|---|\n", - "| 1 | 1 | I | -4 |\n", - "| 2 | 2 | like | -3 |\n", - "| 3 | 3 | to | -2 |\n", - "| 4 | 4 | use | -1 |\n", - "| 5 | 5 | Python | 0 |\n", - "| 6 | 6 | and | 1 |\n", - "| 7 | 7 | Pandas | 2 |\n", - "| 8 | 8 | very | 3 |\n", - "| 9 | 9 | much | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA\n", - "1 1 I -4 \n", - "2 2 like -3 \n", - "3 3 to -2 \n", - "4 4 use -1 \n", - "5 5 Python 0 \n", - "6 6 and 1 \n", - "7 7 Pandas 2 \n", - "8 8 very 3 \n", - "9 9 much 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "c67f2bd0", - "metadata": {}, - "outputs": [], - "source": [ - "df$LenB <- str_length(df$B)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "cef214b2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" - ], - "text/latex": [ - "A data.frame: 9 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\t7 & 7 & Pandas & 2 & 6\\\\\n", - "\t8 & 8 & very & 3 & 4\\\\\n", - "\t9 & 9 & much & 4 & 4\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 9 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "| 7 | 7 | Pandas | 2 | 6 |\n", - "| 8 | 8 | very | 3 | 4 |\n", - "| 9 | 9 | much | 4 | 4 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 \n", - "7 7 Pandas 2 6 \n", - "8 8 very 3 4 \n", - "9 9 much 4 4 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "59fe5316", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" - ], - "text/latex": [ - "A data.frame: 5 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 5 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df[0:5,]" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "f944a949", - "metadata": {}, - "outputs": [], - "source": [ - "df1 = df %>% group_by(LenB) %>% summarise(a = mean(A))" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "8ffd39cd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A tibble: 5 × 2
LenBa
<int><dbl>
11.000000
23.000000
35.000000
46.333333
66.000000
\n" - ], - "text/latex": [ - "A tibble: 5 × 2\n", - "\\begin{tabular}{ll}\n", - " LenB & a\\\\\n", - " & \\\\\n", - "\\hline\n", - "\t 1 & 1.000000\\\\\n", - "\t 2 & 3.000000\\\\\n", - "\t 3 & 5.000000\\\\\n", - "\t 4 & 6.333333\\\\\n", - "\t 6 & 6.000000\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A tibble: 5 × 2\n", - "\n", - "| LenB <int> | a <dbl> |\n", - "|---|---|\n", - "| 1 | 1.000000 |\n", - "| 2 | 3.000000 |\n", - "| 3 | 5.000000 |\n", - "| 4 | 6.333333 |\n", - "| 6 | 6.000000 |\n", - "\n" - ], - "text/plain": [ - " LenB a \n", - "1 1 1.000000\n", - "2 2 3.000000\n", - "3 3 5.000000\n", - "4 4 6.333333\n", - "5 6 6.000000" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df1" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "3b859950", - "metadata": {}, - "outputs": [], - "source": [ - "df2 = df %>% group_by(LenB) %>%\n", - "summarise(MEAN = mean(A),count =length(DivA))" - ] - }, - { - "cell_type": "markdown", - "id": "5d3f0287", - "metadata": {}, - "source": [ - "## Printing and Plotting" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "69946dc7", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Warning message in file(file, \"rt\"):\n", - "\"cannot open file 'file name': No such file or directory\"\n" - ] - }, - { - "ename": "ERROR", - "evalue": "Error in file(file, \"rt\"): cannot open the connection\n", - "output_type": "error", - "traceback": [ - "Error in file(file, \"rt\"): cannot open the connection\nTraceback:\n", - "1. read.csv(\"file name\")", - "2. read.table(file = file, header = header, sep = sep, quote = quote, \n . dec = dec, fill = fill, comment.char = comment.char, ...)", - "3. file(file, \"rt\")" - ] - } - ], - "source": [ - "dataset = read.csv(\"file name\")" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "009af652", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" - ], - "text/latex": [ - "A data.frame: 6 × 4\n", - "\\begin{tabular}{r|llll}\n", - " & A & B & DivA & LenB\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t1 & 1 & I & -4 & 1\\\\\n", - "\t2 & 2 & like & -3 & 4\\\\\n", - "\t3 & 3 & to & -2 & 2\\\\\n", - "\t4 & 4 & use & -1 & 3\\\\\n", - "\t5 & 5 & Python & 0 & 6\\\\\n", - "\t6 & 6 & and & 1 & 3\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 6 × 4\n", - "\n", - "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", - "|---|---|---|---|---|\n", - "| 1 | 1 | I | -4 | 1 |\n", - "| 2 | 2 | like | -3 | 4 |\n", - "| 3 | 3 | to | -2 | 2 |\n", - "| 4 | 4 | use | -1 | 3 |\n", - "| 5 | 5 | Python | 0 | 6 |\n", - "| 6 | 6 | and | 1 | 3 |\n", - "\n" - ], - "text/plain": [ - " A B DivA LenB\n", - "1 1 I -4 1 \n", - "2 2 like -3 4 \n", - "3 3 to -2 2 \n", - "4 4 use -1 3 \n", - "5 5 Python 0 6 \n", - "6 6 and 1 3 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "head(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "515c95b2", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVuklEQVR4nO3djVYbuxWAUZn/ULDf/22LDYm5CQbbc0Y6kvZeC4c2C0Yj6cNg\n0absgMVK6wHACIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEASqEVKAzV+zy+HAaXAIiCQkCCAkCCAkCCAkC\nCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAnO9c3/olxIcJ5DRadS\nEhKcp3x6PPGXV3y+VQmJdMpff379t1d8whUJiXTKp7ev//aKT7gyIZFO+diXQoIlyjcdCQnO\n5FU7WGxfkHMkWOanLSkk+NmPO1JI8KOfN6SQ4Cdn7EchwQ/O2Y5Cgu+dtRuFBN86bzMKCb5x\n7r9pKSQ47eydKCQ46fyNKCQ45YJ9KCQ44ZJtKCT42kW7UEjwpcs2oZDgKxfuQSHBv849Pjp+\nwBXXuPxDEl4CTrt8AwoJ/lanCiExtmu2n5Dgv67afUKC/7hu8wkJPrty7wkJPrl26wkJ/rj4\n+Oj4kVU+JOEl4B8L9p2Q4MOSbSckeLdo1wkJDpZtOiHB3sI9JyTYLd9yQoIFL3v/+QxVPiTh\nJeCPgP0mJKYXsd2ExOxCdpuQmFzMZhMScwvaa0JialFbTUjMLGynCYl5LT8+On6qKh+S8BIQ\nuc2ExKxCd5mQmFTsJhMScwreY0JiStFbTEjMKHyHCYkJxW8wITGdwOOj4+es8iEJL8G0Vtld\nQmIy62wuITGXlfaWkJjKWltLSMxktZ0lJCay3sYSEvNYcV8JiVmscXx0/ORVPiThJZjNuptK\nSMxh5T0lJKaw9pYSEjNYfUcJiQmsv6GExPhybtmco4JTamynmiG93pfN4273dFM2DytdAj4p\n+6OjVY+Pjpeq8iEH283bfZWnx/1juV3lEnB0KKhORlVDeihvz0MPm3K/3W0P78dfAo4Ou2jA\nkDYfN7Y9/LFZ4xLwR/l4qLOZKoZUPn+F+PcLRfnsykvAH+XTW52rrf8hB5tPIW09I7GycnxS\nqnO1Ch9y8PtnpIftx/vxl4CjUrEjr9oxrFFftXOOREXvR0jVdpLfbGBItbeQkBhR9R0kJAZU\nfwMJifE02D9CYjgtto+QGE2T3SMkBtNm8wiJsTTaO0JiJM1+31lIDKTdxhES42i4b4TEMFpu\nGyExiqa7RkgMou2mERJjaLxnhMQQWm8ZITGC5jtGSPQvwf/tlJDoXobtIiR6l2K3CInO5dgs\nQqJvSfaKkOhalq0iJHqWZqcIiY7l2ShCol+J9omQ6FWCY9gjIdGpXJtESPQp2R4REl3KtkWE\nRI/S7RAh0aF8G0RI9Cfh/hAS3cm4PYREb1LuDiHRl1THsEdCoitZt4aQ6EnanSEkOpJ3YwiJ\nfiTeF0KiG5m3hZDoRepdISQ6kXtTCIk+JN8TQqIHSY9hj4REB/JvCCGRXwf7QUik18N2EBLZ\ndbEbhERyfWwGIZFbJ3tBSKTWy1YQEpl1sxOERF7pj2GPhERaPW0DIZFVV7tASCTV1yYQEjl1\ntgeEREq9bQEhkVF3O0BIJNTfBhAS+XS4/kIim46OYY+ERB5l31Cfiy8ksjg8E3X5dLQTEnkc\nVl1IkTqdTJYoHw99Lr6QSKJ8euuPkEiiHJ+UOiQksigddyQk0vCqXbhOJ5MFDkdIvWYkJJLo\nfcmFRAbdr7iQSKD/BRcS7Q2w3kKiuRGWW0i0NsRqC4nGxlhsIdHWIGstJFrq9wT2L0KioXEW\nWki0M9A6C4lmRlpmIdHKUKssJBoZa5GFRBuDrbGQaGK0JRYSLQy3wkKivmGOYY+ERHUjLq+Q\nqG3I1RUSlY25uEKirkHXVkhUNerSComahl1ZIVHRuAsrJOoZeF2FRC0DHsMeCYlKxl5UIVHH\n4GsqJKoYfUmFRA3Dr6iQqGD8BRUS65tgPYXE6mZYTiGxtilWU0isa+hj2CMhsapZllJIrGma\nlRQSK5pnIYXEeiZaRyGxmpmWUUisZapVFBIrmWsRhcQ6JltDIbGGSY5hj4TECuZbQCERb8L1\nExLhZlw+IRFtytUTEsHmXDwhEWvStRMSoWZdOiERadqVExJxpjuGPRISYWZeNiERZepVExJB\n5l40IRFj8jUTEiFmXzIhEWH6FRMSASyYkFjOegmJxSY+hj2qGdL2YfP2+HhTyu2vlS5BVWXf\nkMXaqxjS6+Zt2rdvD3u3q1yCmg7PRJ6O3lUM6b7cbd8e7l/fmrovD2tcgpoOqySkdxVDKmX7\n8fD2XV7ZrHEJKiofDxZrr2pIbw+b8uk//PXXn1x5CSoqn96o+q3dy273uH/YPyN9+0OStelA\nOT4pUTOkl7J5eNndbd5Ker4pz2tcgpqKjo5qvvz9vDl+7/a4ziWoyKt2n9Q9kP11f7Ov6O7x\ndbVLUMnhCElGv/nNBq5iif5LSFzDCv1FSFzBAv1NSFzO+vxDSFzM8vxLSFzK6nxBSFzI4nxF\nSFzEydHXhMQlrMwJQuICFuYUIXE+63KSkDibZTlNSJzLqnxDSJzJonxHSJzHmnxLSJzD8dEP\nhMQZLMhPhMTPrMePhMSPLMfPhMRPrMYZhMQPLMY5hMT3rMVZhMS3LMV5hMQ3HB+dS0icZh3O\nJiROsgznExKnWIULCIkTLMIlhMTXrMFFhMSXLMFlhMQXvOx9KSHxL/N/MSHxD9N/OSHxN7N/\nBSHxF5N/DSHxX+b+KkLiP0z9dYTEZ2b+SkLiyPHR1YTEH6b9ekLiN7O+gJD4YNKXEBLvzPki\nQuLAlC8jJPbM+EJCYmfClxMSjo8CCAmzHUBI0zPZEYQ0O3MdQkiTM9UxhDQ3Mx1ESFMz0VGE\nNDPzHEZI83J8FEhI0zLJkYQ0K3McSkiTMsWxhDQnMxxMSFMywdGCQnp52Cweyg+XII75DRcR\n0uvjTSlC6ofpjbc4pO2vt4rK7XPQeL66BFHK/ujI8dEaFob067bsvYaN599LEOVQkIzWsSSk\n5/u3hjYPL/FrY7HXcJhVIa1jQUibfUX/262xNhZ7BeXjweSuYUFIpTz8fidsOH9dgkDl0xvR\nPCNNoxyflAgX8DPS/4TUh6Kj9XjVbh5etVtR0DnSnXOk7N6PkMzsSvxmwyRM6br8rt0czOjK\n/Pb3FEzo2oQ0A/O5OiFNwHSuT0jjM5sVCGl4JrMGIY3OXFYhpLE5ga1ESEMzkbUIaWTmsRoh\nDcw01iOkcZnFioQ0LJNYk5BGZQ6rEtKgTGFdQhqTGaxMSCNyDFudkAZk+uoT0njMXgNCGo7J\na0FIozF3TQhpMKauDSGNxcw1IqShmLhWhDQS89aMkMbhGLYhIQ3DpLUkpFGYs6aENAhT1paQ\nxmDGGhPSEExYa0IagflqTkgDMF3tCal/ZisBIfXOMWwKQuqcqcpBSH0zU0kIqWsmKgsh9cw8\npSGkjpmmPITUL7OUiJC6ZZIyEVKvzFEqQuqTY9hkhNQlE5SNkHpkftIRUodMTz5C6o/ZSUhI\n3TE5GQmpN+YmJSF1xtTkJKS+mJmkhNQTx7BpCakjpiUvIfXDrCQmpG6YlMyE1AtzkpqQOmFK\nchNSH8xIckLqggnJTkg9MB/pCSk/x7AdaBLSjzvDznlX9jNlMnogpLwO0+TpqA8VQyr/tcYl\nxnKYBSH1oWJI/9sI6RLl48Fk9KDmt3bbu3L7evgMX32KsyubRfn0RnZ1f0b6VcqvnZ+RzlOO\nT0qkV/nFhtfbcrcV0nmKjvpR/VW7x7J5FtJZvGrXkfovf7/c/PwzkM3zXpCfFrvR4hzpXkg/\nMwV98StCOZmBzggppeknoDtCymj2+++QkBKa/Pa7JKR85r77TgkpnalvvltCymbme++YkHJx\nAtspIaUy7Y13T0iZzHrfAxBSIpPe9hCElMecdz0IIaUx5U0PQ0hZzHjPAxFSEhPe8lCElMN8\ndzwYIWXgGLZ7QkpgstsdkpDam+tuByWk5qa62WEJqbWZ7nVgQmpsolsdmpDamudOByekpqa5\n0eEJqaVZ7nMCQmrHMexAhNTMFDc5DSG1MsM9TkRIjUxwi1MRUhvj3+FkhNTE8Dc4HSG1MPr9\nTUhIDQx+e1MSUn1j392khFSbY9ghCamygW9takKqa9w7m5yQqhr2xqYnpJpGvS+EVNOgt8VO\nSDWNeVccCKmaIW+KD0KqZcR74g8h1eEYdnBCqmK4G+IvQqphtPvhH0KqYLDb4QtCWt9Yd8OX\nhLS6oW6GE4S0tpHuhZOEtLKBboVvCGld49wJ3xLSmhzDTkNIKxrkNjiDkNYzxl1wFiGtZoib\n4ExCWssI98DZhLSSAW6BCwhpHf3fARcR0iq6vwEuJKQ19D5+LiakeI5hJySkSGXfUK+DZwkh\nxTk8E3k6mpOQ4hxGLaQ5CSlM+XjocvAsJKQw5dMbsxFSmHJ8UmI6QopTdDQvIcXxqt3EhBTl\ncIQko1kJKUiHQyaQkGL0N2JCCSlEdwMmmJAi9DZewgkpQGfDZQVCWq6v0bIKIS3W1WBZiZAW\ncnLEnpCW6WekrEpIi3QzUFYmpCV6GSerE9ICnQyTCoR0vT5GSRVCuloXg6QSIV2rhzFSjZCu\n4/iI/xDSVdIPkMqEdI3s46M6IV0h+fBoQEiXyz06mhDSxVIPjkaEdKnMY6MZIV0o8dBoSEgX\ncXzE14R0iazjojkhXSDpsEhASOfLOSpSENLZUg6KJIR0roxjIg0hnSnhkEhESGfxsjffE9I5\nso2HdIR0hmTDISEh/SzXaEhJSD9KNRiSEtJPMo2FtIT0g0RDITEhfS/PSEhNSN9xfMSZhPSN\nJMOgA0I6Lcco6IKQTkoxCDohpFMyjIFuCCnvEOiIkLKOgK4IKecA6IyQvrq8jriQkLJdnS4J\nKdfF6ZSQMl2bbgkpz6XpmJCyXJmuCSnHhemckDJcl+4J6dNVdcS1hNT2ogxCSC2vyTCE1O6S\nDERIra7IUITU5oIMRkgtrsdwhFT/cgyoZkjb+1Junz8+ybefpdbOLvthOD5iuYohbTdl7+79\nkyQI6TAGGRGhYkgP5emtpqfN7eGTZAjp54HAeSqGtHn/wNfNzWuKkMrHg5JYrmJIv9vZ3t5+\nFVL57MpLXDaeT2+wTMWQbsr293u3SZ6Rfj8pwUIVQ3oq9x/vvZbbBCF9xKwjAtR8+fvhTz3P\nP3z35lU7OlP1QPbl7vd7r/fNQ3o/QpIRIab9zQYFEWnWkHREqElD0hGx5gxJRwSbMiQdEW3G\nkHREuAlD0hHx5gtJR6xgtpCcwLKKyUKSEeuYKyQdsZKpQtIRa5kpJB2xmolC0hHrmSckHbGi\naULSEWuaJSQdsao5QnIMy8qmCElGrG2GkHTE6iYISUesb/yQdEQFw4ekI2oYPSQdUcXgIemI\nOsYOSUdUMnJIjmGpZuCQZEQ944akIyoaNiQdUdOoIemIqgYNSUfUNWZIOqKyIUPSEbWNGJKO\nqG68kBzD0sBwIcmIFkYLSUc0MVhIOqKNsULSEY0MFZKOaGWkkHREMwOFpCPaGSckHdHQKCE5\nhqWpQUKSEW2NEZKOaGyIkHREayOEpCOaGyAkHdFe/yHpiAS6D0lHZNB7SDoihb5DcgxLEl2H\nJCOy6DkkHZFGxyHpiDz6DUlHJNJtSDoik15D0hGpdBqSjsilz5B0RDI9huQYlnT6CqnsG5IR\n+fQU0uGZyNMRGXUV0uFBSCTUUUjl40FJ5NNZSOXUX0JTnYVU6fpwoY5C+vhvdURCXYXkVTuy\n6imkj3MkyKevkCApIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEAIUEA\nIUEAIUEAIUGApCFBZ67Y5fHhNJP9XoxvmdTjSz24C2W/F+NbJvX4Ug/uQtnvxfiWST2+1IO7\nUPZ7Mb5lUo8v9eAulP1ejG+Z1ONLPbgLZb8X41sm9fhSD+5C2e/F+JZJPb7Ug7tQ9nsxvmVS\njy/14C6U/V6Mb5nU40s9uAtlvxfjWyb1+FIP7kLZ78X4lkk9vtSDu1D2ezG+ZVKPL/XgoBdC\nggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggBCggDDhPR0UzYP29aj\n+Nb/Mk/2y30p96+tR3HS9mGTe30zr+0lHg7/iMAm8UzvtpvEk/2ce/5eN+/jy1t64rW9xEu5\nf9sDT+W+9UC+cXfNvxZSy2bzstvelYfW4zjh/jCyh8Trm3htL3H3fh+Zt+qvq/7ZnUp+HTbq\ntmxaD+SEkn59847sGokn+rXcJh7dfXlpPYRvfXxXnDb0wULaltvWQzjptrwmDumm7B43h2+P\nc3r8+NbusfVATsq7tld4Ks+th3DKY/mV+fmylLvDD/Otx3HS0/7Vhs1T62GclndtL/e6uWs9\nhFNeyl3qbzzfNunLbnuf9yv+4+FVu7TDGyqk7SbvN3Y3+xeWU4e0/xnptdy0HsgJT/tv7d5C\nz/uUlHdtL3abdRfsf5bff8+ZOqTPf+RzU/Y/vm3Thj5QSK83t4lP6xb8u/NVZD8+yB76OCE9\nJ37BroOQHg9Pma9pJ/H95e+851zDhJR3C3ySNqPDT0fb/c8gv1oP5ISHsv89u4e0v3kxTEj3\nyb/iH2Qe3furYnm/Gt0mH98oIWX/1ukg9eieb8sm79f7t2ejTe7xZV5b6IaQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQ\nIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQelPK613ZPB7e\nf7opN0+Nx8OBkHpTyqa82Zd0u3+n3LYeETsh9eetnO3uqdzsdr/K5mX3sim/Wg8JIfWnlP8d\nHne7u/L89t6zp6QMhNSbUn4/vr/3+w+asgi9EVJKFqE3QkrJIvTmGNLvn5HuGo+InZD6cwzJ\nq3aJCKk3x5CcIyUipN58Cmn3tPGbDUkICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQIICQII\nCQIICQIICQL8H5sEkT1X9RA0AAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "41b872c9", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAaE0lEQVR4nO3d63LeRrIsUFD3I1ki3/9pt6SxtrWPjYHBTnxINNb6QdOe\nYFVFMzM4shQzywswbDn7AJiBIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGA\nIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAIkGAInFly4joIclh8GDL/3s9RYI/\nKRIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIEKBIE\nKBIEKBIEKBIEKBIEKBIEKBIEKBIEXL9I394vTx9fXj69WZ4+JA+CHS5fpOen5btPH398XN4m\nL4J/7/JF+rB8/zn04Wl5//zy/PNzOMHli/T08wuX5fnnX55i98Aely/Ssvz18ddf/s9//JvX\nX8eslhG/z7l6kZ5+K9Lzf/+JpEj8TaoAly/Sr18jfXj+8/P8CiamSH/a8W/tFIm/UaRf/v3v\nIykSf6NIlSu4GkWqXMHVKFLlCq5GkSpXcDWKVLmCq1GkyhVcjSJVruBqFKlyBVejSJUruBpF\nqlzB1ShS5QquRpEqV3A1ilS5gqtRpMoVXI0iVa7gahSpcgVXo0iVK7gaRapcwdUoUuUKrkaR\n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\niYP2zBmmSKE5dTFx0J45wxQpNKcuJg7aM2eYIoXm1MXEQXvmDFOk0Jy6mDhoz5xhihSaUxcT\nB+2ZM0yRQnPqYuKgPXOGKVJoTl1MHLRnzjBFCs2pi4mD9swZdmaRliG/Dyr4rtTFxEF75gw7\ntUgDj1D3XXHQ5Q5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiR\njnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQ\nrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU6\n6jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3\nOkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo\n13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93q\nIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe\n00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuD\nFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpN\nB93qIEU66jUddKuDFOmo13TQrQ5SpKNe00G3OkiRjnpNB93qoJIi/fHx3fLDuw9/vHLFVN8V\nB13uoIoiPb9Z/vL2dSum+q446HIHVRTpw/L0+evPz759eVo+vGrFVN8VB13uoIoiPS1f//fz\nr8vTq1ZM9V1x0OUOqijSsqz9zZ//5DfrM0akBjnotgetBfM1HvATCeY38GukL99+frb5aySY\n36t/vL397Ufkm+fkSXA9A7+P9OHn7yM9vfu48ftIML8H/MkGmJ8iQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAiQYAi\nQYAiQYAiQYAiQYAiXc2yfHu3PH38+fmnN8ubTyffw0+KdDXL8rR896NJb398srw9+yJeFOl6\nvjfn+eXT8ubl5fPy9PXl69Py+eyTUKTrWZY/fn58eXm3fPn+2Rc/khoo0tUsy6+P//ns1184\nlW/C1ShSJd+Eq1GkSr4JV/NXkX79GundyRfxokjX81eR/Fu7Iop0NX8Vye8jFVGkq/mtSC+f\nnvzJhhKKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGK\nBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAGKBAH/Ayzv44rlEgIU\nAAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": { - "image/png": { - "height": 420, - "width": 420 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "barplot(df$A, ylab = 'A',xlab = 'no')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "11001454", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "670db495", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "R", - "language": "R", - "name": "ir" - }, - "language_info": { - "codemirror_mode": "r", - "file_extension": ".r", - "mimetype": "text/x-r-source", - "name": "R", - "pygments_lexer": "r", - "version": "4.1.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/2-Working-With-Data/07-python/R/notebook.ipynb b/2-Working-With-Data/07-python/R/notebook.ipynb new file mode 100644 index 00000000..605b2117 --- /dev/null +++ b/2-Working-With-Data/07-python/R/notebook.ipynb @@ -0,0 +1,2131 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9f9b980c", + "metadata": {}, + "source": [ + "## Pandas Usecase in R\n", + " We have to use dplyr library to solve pandas usecase in R. We will start importing typical data science library" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "625abf4a", + "metadata": {}, + "outputs": [], + "source": [ + "options(warn=-1)\n", + "library(dplyr)\n", + "library(tidyverse)\n", + "library(lubridate)\n", + "library(zoo)\n", + "library(xts)\n", + "library('ggplot2')" + ] + }, + { + "cell_type": "markdown", + "id": "d786e051", + "metadata": {}, + "source": [ + "## Series" + ] + }, + { + "cell_type": "markdown", + "id": "0f47587a", + "metadata": {}, + "source": [ + " Series is like a list or 1D-array, but with index. All operations are index-aligned. Indexing of row in R we have to use row.names.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "f659f553", + "metadata": {}, + "outputs": [], + "source": [ + "a<- 1:9" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "9acc193d", + "metadata": {}, + "outputs": [], + "source": [ + "b = c(\"I\",\"like\",\"to\",\"use\",\"Python\",\"and\",\"Pandas\",\"very\",\"much\")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "f577ec14", + "metadata": {}, + "outputs": [], + "source": [ + "a1 = length(a)\n", + "b1 = length(b)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "31e069a0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " a\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 4\n", + "5 5\n", + "6 6\n", + "7 7\n", + "8 8\n", + "9 9\n" + ] + } + ], + "source": [ + "a = data.frame(a,row.names = c(1:a1))\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "29ce166e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " b\n", + "1 I\n", + "2 like\n", + "3 to\n", + "4 use\n", + "5 Python\n", + "6 and\n", + "7 Pandas\n", + "8 very\n", + "9 much\n" + ] + } + ], + "source": [ + "b = data.frame(b,row.names = c(1:b1))\n", + "print(b)" + ] + }, + { + "cell_type": "markdown", + "id": "a83abe74", + "metadata": {}, + "source": [ + " One of the frequent usages of series is time series. In time series, the index has a special structure - typically a range of dates or datetimes. The easiest way to create time series using the ts function. But we will try another way to implement time series. We have to use the lubridate library to create an index of dates using the seq function.\n", + " \n", + " Suppose we have a series that shows the amount of product bought every day, and we know that every Sunday we also need to take one additional item for ourselves. Here is how to model using series:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "eeb683c7", + "metadata": {}, + "outputs": [], + "source": [ + "# We will use ggplot2 for visualizing the data\n", + "# If you want to change the plot size repr library will be used\n", + "library(repr)\n", + "options(repr.plot.width = 12,repr.plot.height=6)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "e7788ca1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] \"length of index is 366\"\n" + ] + }, + { + "data": { + "image/png": "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\nnXZjTwAAAABJRU5ErkJggg==", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "start_date <- mdy(\"Jan 1, 2020\")\n", + "end_date <- mdy(\"Dec 31, 2020\")\n", + "idx = seq(start_date,end_date,by ='day')\n", + "print(paste(\"length of index is \",length(idx)))\n", + "size = length(idx)\n", + "sales = runif(366,min=25,max=50)\n", + "sold_items <- data.frame(row.names=idx[0:size],sales)\n", + "ggplot(sold_items,aes(x=idx,y=sales)) + geom_point(color = \"firebrick\", shape = \"diamond\", size = 2) +\n", + " geom_line(color = \"firebrick\", size = .3)" + ] + }, + { + "cell_type": "markdown", + "id": "3f199e43", + "metadata": {}, + "source": [ + "We are merging additional_items and sold_items so that we can find the total no of products.\n", + "As you can see, we are having problems here to find the total, we are getting NaN value as in the weekly series non-mentioned days are considered to be missing (NaN) if we add NaN to a number that gives us NaN.\n", + "In order to do addition, we need to replace NAN with 0." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "abe41544", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 53 × 1
additional_product
<dbl>
2020-01-0110
2020-01-0810
2020-01-1510
2020-01-2210
2020-01-2910
2020-02-0510
2020-02-1210
2020-02-1910
2020-02-2610
2020-03-0410
2020-03-1110
2020-03-1810
2020-03-2510
2020-04-0110
2020-04-0810
2020-04-1510
2020-04-2210
2020-04-2910
2020-05-0610
2020-05-1310
2020-05-2010
2020-05-2710
2020-06-0310
2020-06-1010
2020-06-1710
2020-06-2410
2020-07-0110
2020-07-0810
2020-07-1510
2020-07-2210
2020-07-2910
2020-08-0510
2020-08-1210
2020-08-1910
2020-08-2610
2020-09-0210
2020-09-0910
2020-09-1610
2020-09-2310
2020-09-3010
2020-10-0710
2020-10-1410
2020-10-2110
2020-10-2810
2020-11-0410
2020-11-1110
2020-11-1810
2020-11-2510
2020-12-0210
2020-12-0910
2020-12-1610
2020-12-2310
2020-12-3010
\n" + ], + "text/latex": [ + "A data.frame: 53 × 1\n", + "\\begin{tabular}{r|l}\n", + " & additional\\_product\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t2020-01-01 & 10\\\\\n", + "\t2020-01-08 & 10\\\\\n", + "\t2020-01-15 & 10\\\\\n", + "\t2020-01-22 & 10\\\\\n", + "\t2020-01-29 & 10\\\\\n", + "\t2020-02-05 & 10\\\\\n", + "\t2020-02-12 & 10\\\\\n", + "\t2020-02-19 & 10\\\\\n", + "\t2020-02-26 & 10\\\\\n", + "\t2020-03-04 & 10\\\\\n", + "\t2020-03-11 & 10\\\\\n", + "\t2020-03-18 & 10\\\\\n", + "\t2020-03-25 & 10\\\\\n", + "\t2020-04-01 & 10\\\\\n", + "\t2020-04-08 & 10\\\\\n", + "\t2020-04-15 & 10\\\\\n", + "\t2020-04-22 & 10\\\\\n", + "\t2020-04-29 & 10\\\\\n", + "\t2020-05-06 & 10\\\\\n", + "\t2020-05-13 & 10\\\\\n", + "\t2020-05-20 & 10\\\\\n", + "\t2020-05-27 & 10\\\\\n", + "\t2020-06-03 & 10\\\\\n", + "\t2020-06-10 & 10\\\\\n", + "\t2020-06-17 & 10\\\\\n", + "\t2020-06-24 & 10\\\\\n", + "\t2020-07-01 & 10\\\\\n", + "\t2020-07-08 & 10\\\\\n", + "\t2020-07-15 & 10\\\\\n", + "\t2020-07-22 & 10\\\\\n", + "\t2020-07-29 & 10\\\\\n", + "\t2020-08-05 & 10\\\\\n", + "\t2020-08-12 & 10\\\\\n", + "\t2020-08-19 & 10\\\\\n", + "\t2020-08-26 & 10\\\\\n", + "\t2020-09-02 & 10\\\\\n", + "\t2020-09-09 & 10\\\\\n", + "\t2020-09-16 & 10\\\\\n", + "\t2020-09-23 & 10\\\\\n", + "\t2020-09-30 & 10\\\\\n", + "\t2020-10-07 & 10\\\\\n", + "\t2020-10-14 & 10\\\\\n", + "\t2020-10-21 & 10\\\\\n", + "\t2020-10-28 & 10\\\\\n", + "\t2020-11-04 & 10\\\\\n", + "\t2020-11-11 & 10\\\\\n", + "\t2020-11-18 & 10\\\\\n", + "\t2020-11-25 & 10\\\\\n", + "\t2020-12-02 & 10\\\\\n", + "\t2020-12-09 & 10\\\\\n", + "\t2020-12-16 & 10\\\\\n", + "\t2020-12-23 & 10\\\\\n", + "\t2020-12-30 & 10\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 53 × 1\n", + "\n", + "| | additional_product <dbl> |\n", + "|---|---|\n", + "| 2020-01-01 | 10 |\n", + "| 2020-01-08 | 10 |\n", + "| 2020-01-15 | 10 |\n", + "| 2020-01-22 | 10 |\n", + "| 2020-01-29 | 10 |\n", + "| 2020-02-05 | 10 |\n", + "| 2020-02-12 | 10 |\n", + "| 2020-02-19 | 10 |\n", + "| 2020-02-26 | 10 |\n", + "| 2020-03-04 | 10 |\n", + "| 2020-03-11 | 10 |\n", + "| 2020-03-18 | 10 |\n", + "| 2020-03-25 | 10 |\n", + "| 2020-04-01 | 10 |\n", + "| 2020-04-08 | 10 |\n", + "| 2020-04-15 | 10 |\n", + "| 2020-04-22 | 10 |\n", + "| 2020-04-29 | 10 |\n", + "| 2020-05-06 | 10 |\n", + "| 2020-05-13 | 10 |\n", + "| 2020-05-20 | 10 |\n", + "| 2020-05-27 | 10 |\n", + "| 2020-06-03 | 10 |\n", + "| 2020-06-10 | 10 |\n", + "| 2020-06-17 | 10 |\n", + "| 2020-06-24 | 10 |\n", + "| 2020-07-01 | 10 |\n", + "| 2020-07-08 | 10 |\n", + "| 2020-07-15 | 10 |\n", + "| 2020-07-22 | 10 |\n", + "| 2020-07-29 | 10 |\n", + "| 2020-08-05 | 10 |\n", + "| 2020-08-12 | 10 |\n", + "| 2020-08-19 | 10 |\n", + "| 2020-08-26 | 10 |\n", + "| 2020-09-02 | 10 |\n", + "| 2020-09-09 | 10 |\n", + "| 2020-09-16 | 10 |\n", + "| 2020-09-23 | 10 |\n", + "| 2020-09-30 | 10 |\n", + "| 2020-10-07 | 10 |\n", + "| 2020-10-14 | 10 |\n", + "| 2020-10-21 | 10 |\n", + "| 2020-10-28 | 10 |\n", + "| 2020-11-04 | 10 |\n", + "| 2020-11-11 | 10 |\n", + "| 2020-11-18 | 10 |\n", + "| 2020-11-25 | 10 |\n", + "| 2020-12-02 | 10 |\n", + "| 2020-12-09 | 10 |\n", + "| 2020-12-16 | 10 |\n", + "| 2020-12-23 | 10 |\n", + "| 2020-12-30 | 10 |\n", + "\n" + ], + "text/plain": [ + " additional_product\n", + "2020-01-01 10 \n", + "2020-01-08 10 \n", + "2020-01-15 10 \n", + "2020-01-22 10 \n", + "2020-01-29 10 \n", + "2020-02-05 10 \n", + "2020-02-12 10 \n", + "2020-02-19 10 \n", + "2020-02-26 10 \n", + "2020-03-04 10 \n", + "2020-03-11 10 \n", + "2020-03-18 10 \n", + "2020-03-25 10 \n", + "2020-04-01 10 \n", + "2020-04-08 10 \n", + "2020-04-15 10 \n", + "2020-04-22 10 \n", + "2020-04-29 10 \n", + "2020-05-06 10 \n", + "2020-05-13 10 \n", + "2020-05-20 10 \n", + "2020-05-27 10 \n", + "2020-06-03 10 \n", + "2020-06-10 10 \n", + "2020-06-17 10 \n", + "2020-06-24 10 \n", + "2020-07-01 10 \n", + "2020-07-08 10 \n", + "2020-07-15 10 \n", + "2020-07-22 10 \n", + "2020-07-29 10 \n", + "2020-08-05 10 \n", + "2020-08-12 10 \n", + "2020-08-19 10 \n", + "2020-08-26 10 \n", + "2020-09-02 10 \n", + "2020-09-09 10 \n", + "2020-09-16 10 \n", + "2020-09-23 10 \n", + "2020-09-30 10 \n", + "2020-10-07 10 \n", + "2020-10-14 10 \n", + "2020-10-21 10 \n", + "2020-10-28 10 \n", + "2020-11-04 10 \n", + "2020-11-11 10 \n", + "2020-11-18 10 \n", + "2020-11-25 10 \n", + "2020-12-02 10 \n", + "2020-12-09 10 \n", + "2020-12-16 10 \n", + "2020-12-23 10 \n", + "2020-12-30 10 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 366 × 1
total
<dbl>
2020-01-0153.59979
2020-01-02 NA
2020-01-03 NA
2020-01-04 NA
2020-01-05 NA
2020-01-06 NA
2020-01-07 NA
2020-01-0840.93455
2020-01-09 NA
2020-01-10 NA
2020-01-11 NA
2020-01-12 NA
2020-01-13 NA
2020-01-14 NA
2020-01-1559.24704
2020-01-16 NA
2020-01-17 NA
2020-01-18 NA
2020-01-19 NA
2020-01-20 NA
2020-01-21 NA
2020-01-2238.26416
2020-01-23 NA
2020-01-24 NA
2020-01-25 NA
2020-01-26 NA
2020-01-27 NA
2020-01-28 NA
2020-01-2944.58327
2020-01-30 NA
......
2020-12-0241.74811
2020-12-03 NA
2020-12-04 NA
2020-12-05 NA
2020-12-06 NA
2020-12-07 NA
2020-12-08 NA
2020-12-0937.85650
2020-12-10 NA
2020-12-11 NA
2020-12-12 NA
2020-12-13 NA
2020-12-14 NA
2020-12-15 NA
2020-12-1646.73560
2020-12-17 NA
2020-12-18 NA
2020-12-19 NA
2020-12-20 NA
2020-12-21 NA
2020-12-22 NA
2020-12-2340.42143
2020-12-24 NA
2020-12-25 NA
2020-12-26 NA
2020-12-27 NA
2020-12-28 NA
2020-12-29 NA
2020-12-3041.20298
2020-12-31 NA
\n" + ], + "text/latex": [ + "A data.frame: 366 × 1\n", + "\\begin{tabular}{r|l}\n", + " & total\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t2020-01-01 & 53.59979\\\\\n", + "\t2020-01-02 & NA\\\\\n", + "\t2020-01-03 & NA\\\\\n", + "\t2020-01-04 & NA\\\\\n", + "\t2020-01-05 & NA\\\\\n", + "\t2020-01-06 & NA\\\\\n", + "\t2020-01-07 & NA\\\\\n", + "\t2020-01-08 & 40.93455\\\\\n", + "\t2020-01-09 & NA\\\\\n", + "\t2020-01-10 & NA\\\\\n", + "\t2020-01-11 & NA\\\\\n", + "\t2020-01-12 & NA\\\\\n", + "\t2020-01-13 & NA\\\\\n", + "\t2020-01-14 & NA\\\\\n", + "\t2020-01-15 & 59.24704\\\\\n", + "\t2020-01-16 & NA\\\\\n", + "\t2020-01-17 & NA\\\\\n", + "\t2020-01-18 & NA\\\\\n", + "\t2020-01-19 & NA\\\\\n", + "\t2020-01-20 & NA\\\\\n", + "\t2020-01-21 & NA\\\\\n", + "\t2020-01-22 & 38.26416\\\\\n", + "\t2020-01-23 & NA\\\\\n", + "\t2020-01-24 & NA\\\\\n", + "\t2020-01-25 & NA\\\\\n", + "\t2020-01-26 & NA\\\\\n", + "\t2020-01-27 & NA\\\\\n", + "\t2020-01-28 & NA\\\\\n", + "\t2020-01-29 & 44.58327\\\\\n", + "\t2020-01-30 & NA\\\\\n", + "\t... & ...\\\\\n", + "\t2020-12-02 & 41.74811\\\\\n", + "\t2020-12-03 & NA\\\\\n", + "\t2020-12-04 & NA\\\\\n", + "\t2020-12-05 & NA\\\\\n", + "\t2020-12-06 & NA\\\\\n", + "\t2020-12-07 & NA\\\\\n", + "\t2020-12-08 & NA\\\\\n", + "\t2020-12-09 & 37.85650\\\\\n", + "\t2020-12-10 & NA\\\\\n", + "\t2020-12-11 & NA\\\\\n", + "\t2020-12-12 & NA\\\\\n", + "\t2020-12-13 & NA\\\\\n", + "\t2020-12-14 & NA\\\\\n", + "\t2020-12-15 & NA\\\\\n", + "\t2020-12-16 & 46.73560\\\\\n", + "\t2020-12-17 & NA\\\\\n", + "\t2020-12-18 & NA\\\\\n", + "\t2020-12-19 & NA\\\\\n", + "\t2020-12-20 & NA\\\\\n", + "\t2020-12-21 & NA\\\\\n", + "\t2020-12-22 & NA\\\\\n", + "\t2020-12-23 & 40.42143\\\\\n", + "\t2020-12-24 & NA\\\\\n", + "\t2020-12-25 & NA\\\\\n", + "\t2020-12-26 & NA\\\\\n", + "\t2020-12-27 & NA\\\\\n", + "\t2020-12-28 & NA\\\\\n", + "\t2020-12-29 & NA\\\\\n", + "\t2020-12-30 & 41.20298\\\\\n", + "\t2020-12-31 & NA\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 366 × 1\n", + "\n", + "| | total <dbl> |\n", + "|---|---|\n", + "| 2020-01-01 | 53.59979 |\n", + "| 2020-01-02 | NA |\n", + "| 2020-01-03 | NA |\n", + "| 2020-01-04 | NA |\n", + "| 2020-01-05 | NA |\n", + "| 2020-01-06 | NA |\n", + "| 2020-01-07 | NA |\n", + "| 2020-01-08 | 40.93455 |\n", + "| 2020-01-09 | NA |\n", + "| 2020-01-10 | NA |\n", + "| 2020-01-11 | NA |\n", + "| 2020-01-12 | NA |\n", + "| 2020-01-13 | NA |\n", + "| 2020-01-14 | NA |\n", + "| 2020-01-15 | 59.24704 |\n", + "| 2020-01-16 | NA |\n", + "| 2020-01-17 | NA |\n", + "| 2020-01-18 | NA |\n", + "| 2020-01-19 | NA |\n", + "| 2020-01-20 | NA |\n", + "| 2020-01-21 | NA |\n", + "| 2020-01-22 | 38.26416 |\n", + "| 2020-01-23 | NA |\n", + "| 2020-01-24 | NA |\n", + "| 2020-01-25 | NA |\n", + "| 2020-01-26 | NA |\n", + "| 2020-01-27 | NA |\n", + "| 2020-01-28 | NA |\n", + "| 2020-01-29 | 44.58327 |\n", + "| 2020-01-30 | NA |\n", + "| ... | ... |\n", + "| 2020-12-02 | 41.74811 |\n", + "| 2020-12-03 | NA |\n", + "| 2020-12-04 | NA |\n", + "| 2020-12-05 | NA |\n", + "| 2020-12-06 | NA |\n", + "| 2020-12-07 | NA |\n", + "| 2020-12-08 | NA |\n", + "| 2020-12-09 | 37.85650 |\n", + "| 2020-12-10 | NA |\n", + "| 2020-12-11 | NA |\n", + "| 2020-12-12 | NA |\n", + "| 2020-12-13 | NA |\n", + "| 2020-12-14 | NA |\n", + "| 2020-12-15 | NA |\n", + "| 2020-12-16 | 46.73560 |\n", + "| 2020-12-17 | NA |\n", + "| 2020-12-18 | NA |\n", + "| 2020-12-19 | NA |\n", + "| 2020-12-20 | NA |\n", + "| 2020-12-21 | NA |\n", + "| 2020-12-22 | NA |\n", + "| 2020-12-23 | 40.42143 |\n", + "| 2020-12-24 | NA |\n", + "| 2020-12-25 | NA |\n", + "| 2020-12-26 | NA |\n", + "| 2020-12-27 | NA |\n", + "| 2020-12-28 | NA |\n", + "| 2020-12-29 | NA |\n", + "| 2020-12-30 | 41.20298 |\n", + "| 2020-12-31 | NA |\n", + "\n" + ], + "text/plain": [ + " total \n", + "2020-01-01 53.59979\n", + "2020-01-02 NA\n", + "2020-01-03 NA\n", + "2020-01-04 NA\n", + "2020-01-05 NA\n", + "2020-01-06 NA\n", + "2020-01-07 NA\n", + "2020-01-08 40.93455\n", + "2020-01-09 NA\n", + "2020-01-10 NA\n", + "2020-01-11 NA\n", + "2020-01-12 NA\n", + "2020-01-13 NA\n", + "2020-01-14 NA\n", + "2020-01-15 59.24704\n", + "2020-01-16 NA\n", + "2020-01-17 NA\n", + "2020-01-18 NA\n", + "2020-01-19 NA\n", + "2020-01-20 NA\n", + "2020-01-21 NA\n", + "2020-01-22 38.26416\n", + "2020-01-23 NA\n", + "2020-01-24 NA\n", + "2020-01-25 NA\n", + "2020-01-26 NA\n", + "2020-01-27 NA\n", + "2020-01-28 NA\n", + "2020-01-29 44.58327\n", + "2020-01-30 NA\n", + "... ... \n", + "2020-12-02 41.74811\n", + "2020-12-03 NA\n", + "2020-12-04 NA\n", + "2020-12-05 NA\n", + "2020-12-06 NA\n", + "2020-12-07 NA\n", + "2020-12-08 NA\n", + "2020-12-09 37.85650\n", + "2020-12-10 NA\n", + "2020-12-11 NA\n", + "2020-12-12 NA\n", + "2020-12-13 NA\n", + "2020-12-14 NA\n", + "2020-12-15 NA\n", + "2020-12-16 46.73560\n", + "2020-12-17 NA\n", + "2020-12-18 NA\n", + "2020-12-19 NA\n", + "2020-12-20 NA\n", + "2020-12-21 NA\n", + "2020-12-22 NA\n", + "2020-12-23 40.42143\n", + "2020-12-24 NA\n", + "2020-12-25 NA\n", + "2020-12-26 NA\n", + "2020-12-27 NA\n", + "2020-12-28 NA\n", + "2020-12-29 NA\n", + "2020-12-30 41.20298\n", + "2020-12-31 NA" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "index = seq(start_date,end_date,by = 'week')\n", + "sz = length(index)\n", + "additional_product <- rep(10,53)\n", + "additional_items <- data.frame(row.names = index[0:sz],additional_product)\n", + "additional_items\n", + "# we are merging two dataframe so that we can add\n", + "additional_item = merge(additional_items,sold_items, by = 0, all = TRUE)[-1] \n", + "total = data.frame(row.names=idx[0:size],additional_item$additional_product + additional_item$sales)\n", + "colnames(total) = c('total')\n", + "total" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "387cb4c2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 366 × 1
total
<dbl>
2020-01-0153.59979
2020-01-0230.41127
2020-01-0348.54839
2020-01-0439.20897
2020-01-0539.09894
2020-01-0647.53019
2020-01-0744.94766
2020-01-0840.93455
2020-01-0937.66561
2020-01-1031.68825
2020-01-1145.30576
2020-01-1226.45509
2020-01-1345.81249
2020-01-1446.84547
2020-01-1559.24704
2020-01-1629.28688
2020-01-1732.41731
2020-01-1845.23295
2020-01-1948.54330
2020-01-2036.69353
2020-01-2143.09588
2020-01-2238.26416
2020-01-2345.56863
2020-01-2425.70944
2020-01-2537.38721
2020-01-2644.53955
2020-01-2746.88427
2020-01-2848.05540
2020-01-2944.58327
2020-01-3026.19490
......
2020-12-0241.74811
2020-12-0335.03915
2020-12-0425.84637
2020-12-0527.73147
2020-12-0639.00993
2020-12-0741.03187
2020-12-0826.33862
2020-12-0937.85650
2020-12-1041.98943
2020-12-1136.68901
2020-12-1246.96883
2020-12-1339.70374
2020-12-1446.59464
2020-12-1541.24742
2020-12-1646.73560
2020-12-1732.68275
2020-12-1846.64238
2020-12-1925.22163
2020-12-2039.79997
2020-12-2134.45013
2020-12-2248.71183
2020-12-2340.42143
2020-12-2432.41991
2020-12-2539.12296
2020-12-2629.43616
2020-12-2739.09337
2020-12-2838.09288
2020-12-2941.00681
2020-12-3041.20298
2020-12-3143.25232
\n" + ], + "text/latex": [ + "A data.frame: 366 × 1\n", + "\\begin{tabular}{r|l}\n", + " & total\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t2020-01-01 & 53.59979\\\\\n", + "\t2020-01-02 & 30.41127\\\\\n", + "\t2020-01-03 & 48.54839\\\\\n", + "\t2020-01-04 & 39.20897\\\\\n", + "\t2020-01-05 & 39.09894\\\\\n", + "\t2020-01-06 & 47.53019\\\\\n", + "\t2020-01-07 & 44.94766\\\\\n", + "\t2020-01-08 & 40.93455\\\\\n", + "\t2020-01-09 & 37.66561\\\\\n", + "\t2020-01-10 & 31.68825\\\\\n", + "\t2020-01-11 & 45.30576\\\\\n", + "\t2020-01-12 & 26.45509\\\\\n", + "\t2020-01-13 & 45.81249\\\\\n", + "\t2020-01-14 & 46.84547\\\\\n", + "\t2020-01-15 & 59.24704\\\\\n", + "\t2020-01-16 & 29.28688\\\\\n", + "\t2020-01-17 & 32.41731\\\\\n", + "\t2020-01-18 & 45.23295\\\\\n", + "\t2020-01-19 & 48.54330\\\\\n", + "\t2020-01-20 & 36.69353\\\\\n", + "\t2020-01-21 & 43.09588\\\\\n", + "\t2020-01-22 & 38.26416\\\\\n", + "\t2020-01-23 & 45.56863\\\\\n", + "\t2020-01-24 & 25.70944\\\\\n", + "\t2020-01-25 & 37.38721\\\\\n", + "\t2020-01-26 & 44.53955\\\\\n", + "\t2020-01-27 & 46.88427\\\\\n", + "\t2020-01-28 & 48.05540\\\\\n", + "\t2020-01-29 & 44.58327\\\\\n", + "\t2020-01-30 & 26.19490\\\\\n", + "\t... & ...\\\\\n", + "\t2020-12-02 & 41.74811\\\\\n", + "\t2020-12-03 & 35.03915\\\\\n", + "\t2020-12-04 & 25.84637\\\\\n", + "\t2020-12-05 & 27.73147\\\\\n", + "\t2020-12-06 & 39.00993\\\\\n", + "\t2020-12-07 & 41.03187\\\\\n", + "\t2020-12-08 & 26.33862\\\\\n", + "\t2020-12-09 & 37.85650\\\\\n", + "\t2020-12-10 & 41.98943\\\\\n", + "\t2020-12-11 & 36.68901\\\\\n", + "\t2020-12-12 & 46.96883\\\\\n", + "\t2020-12-13 & 39.70374\\\\\n", + "\t2020-12-14 & 46.59464\\\\\n", + "\t2020-12-15 & 41.24742\\\\\n", + "\t2020-12-16 & 46.73560\\\\\n", + "\t2020-12-17 & 32.68275\\\\\n", + "\t2020-12-18 & 46.64238\\\\\n", + "\t2020-12-19 & 25.22163\\\\\n", + "\t2020-12-20 & 39.79997\\\\\n", + "\t2020-12-21 & 34.45013\\\\\n", + "\t2020-12-22 & 48.71183\\\\\n", + "\t2020-12-23 & 40.42143\\\\\n", + "\t2020-12-24 & 32.41991\\\\\n", + "\t2020-12-25 & 39.12296\\\\\n", + "\t2020-12-26 & 29.43616\\\\\n", + "\t2020-12-27 & 39.09337\\\\\n", + "\t2020-12-28 & 38.09288\\\\\n", + "\t2020-12-29 & 41.00681\\\\\n", + "\t2020-12-30 & 41.20298\\\\\n", + "\t2020-12-31 & 43.25232\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 366 × 1\n", + "\n", + "| | total <dbl> |\n", + "|---|---|\n", + "| 2020-01-01 | 53.59979 |\n", + "| 2020-01-02 | 30.41127 |\n", + "| 2020-01-03 | 48.54839 |\n", + "| 2020-01-04 | 39.20897 |\n", + "| 2020-01-05 | 39.09894 |\n", + "| 2020-01-06 | 47.53019 |\n", + "| 2020-01-07 | 44.94766 |\n", + "| 2020-01-08 | 40.93455 |\n", + "| 2020-01-09 | 37.66561 |\n", + "| 2020-01-10 | 31.68825 |\n", + "| 2020-01-11 | 45.30576 |\n", + "| 2020-01-12 | 26.45509 |\n", + "| 2020-01-13 | 45.81249 |\n", + "| 2020-01-14 | 46.84547 |\n", + "| 2020-01-15 | 59.24704 |\n", + "| 2020-01-16 | 29.28688 |\n", + "| 2020-01-17 | 32.41731 |\n", + "| 2020-01-18 | 45.23295 |\n", + "| 2020-01-19 | 48.54330 |\n", + "| 2020-01-20 | 36.69353 |\n", + "| 2020-01-21 | 43.09588 |\n", + "| 2020-01-22 | 38.26416 |\n", + "| 2020-01-23 | 45.56863 |\n", + "| 2020-01-24 | 25.70944 |\n", + "| 2020-01-25 | 37.38721 |\n", + "| 2020-01-26 | 44.53955 |\n", + "| 2020-01-27 | 46.88427 |\n", + "| 2020-01-28 | 48.05540 |\n", + "| 2020-01-29 | 44.58327 |\n", + "| 2020-01-30 | 26.19490 |\n", + "| ... | ... |\n", + "| 2020-12-02 | 41.74811 |\n", + "| 2020-12-03 | 35.03915 |\n", + "| 2020-12-04 | 25.84637 |\n", + "| 2020-12-05 | 27.73147 |\n", + "| 2020-12-06 | 39.00993 |\n", + "| 2020-12-07 | 41.03187 |\n", + "| 2020-12-08 | 26.33862 |\n", + "| 2020-12-09 | 37.85650 |\n", + "| 2020-12-10 | 41.98943 |\n", + "| 2020-12-11 | 36.68901 |\n", + "| 2020-12-12 | 46.96883 |\n", + "| 2020-12-13 | 39.70374 |\n", + "| 2020-12-14 | 46.59464 |\n", + "| 2020-12-15 | 41.24742 |\n", + "| 2020-12-16 | 46.73560 |\n", + "| 2020-12-17 | 32.68275 |\n", + "| 2020-12-18 | 46.64238 |\n", + "| 2020-12-19 | 25.22163 |\n", + "| 2020-12-20 | 39.79997 |\n", + "| 2020-12-21 | 34.45013 |\n", + "| 2020-12-22 | 48.71183 |\n", + "| 2020-12-23 | 40.42143 |\n", + "| 2020-12-24 | 32.41991 |\n", + "| 2020-12-25 | 39.12296 |\n", + "| 2020-12-26 | 29.43616 |\n", + "| 2020-12-27 | 39.09337 |\n", + "| 2020-12-28 | 38.09288 |\n", + "| 2020-12-29 | 41.00681 |\n", + "| 2020-12-30 | 41.20298 |\n", + "| 2020-12-31 | 43.25232 |\n", + "\n" + ], + "text/plain": [ + " total \n", + "2020-01-01 53.59979\n", + "2020-01-02 30.41127\n", + "2020-01-03 48.54839\n", + "2020-01-04 39.20897\n", + "2020-01-05 39.09894\n", + "2020-01-06 47.53019\n", + "2020-01-07 44.94766\n", + "2020-01-08 40.93455\n", + "2020-01-09 37.66561\n", + "2020-01-10 31.68825\n", + "2020-01-11 45.30576\n", + "2020-01-12 26.45509\n", + "2020-01-13 45.81249\n", + "2020-01-14 46.84547\n", + "2020-01-15 59.24704\n", + "2020-01-16 29.28688\n", + "2020-01-17 32.41731\n", + "2020-01-18 45.23295\n", + "2020-01-19 48.54330\n", + "2020-01-20 36.69353\n", + "2020-01-21 43.09588\n", + "2020-01-22 38.26416\n", + "2020-01-23 45.56863\n", + "2020-01-24 25.70944\n", + "2020-01-25 37.38721\n", + "2020-01-26 44.53955\n", + "2020-01-27 46.88427\n", + "2020-01-28 48.05540\n", + "2020-01-29 44.58327\n", + "2020-01-30 26.19490\n", + "... ... \n", + "2020-12-02 41.74811\n", + "2020-12-03 35.03915\n", + "2020-12-04 25.84637\n", + "2020-12-05 27.73147\n", + "2020-12-06 39.00993\n", + "2020-12-07 41.03187\n", + "2020-12-08 26.33862\n", + "2020-12-09 37.85650\n", + "2020-12-10 41.98943\n", + "2020-12-11 36.68901\n", + "2020-12-12 46.96883\n", + "2020-12-13 39.70374\n", + "2020-12-14 46.59464\n", + "2020-12-15 41.24742\n", + "2020-12-16 46.73560\n", + "2020-12-17 32.68275\n", + "2020-12-18 46.64238\n", + "2020-12-19 25.22163\n", + "2020-12-20 39.79997\n", + "2020-12-21 34.45013\n", + "2020-12-22 48.71183\n", + "2020-12-23 40.42143\n", + "2020-12-24 32.41991\n", + "2020-12-25 39.12296\n", + "2020-12-26 29.43616\n", + "2020-12-27 39.09337\n", + "2020-12-28 38.09288\n", + "2020-12-29 41.00681\n", + "2020-12-30 41.20298\n", + "2020-12-31 43.25232" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "additional_item[is.na(additional_item)] = 0\n", + "total = data.frame(row.names=idx[0:size],additional_item$additional_product + additional_item$sales)\n", + "colnames(total) = c('total')\n", + "total" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "bdb60236", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "ggplot(total,aes(x=idx,y=total)) + geom_point(color = \"firebrick\", shape = \"diamond\", size = 2) +\n", + " geom_line(color = \"firebrick\", linetype = \"dotted\", size = .3)" + ] + }, + { + "cell_type": "markdown", + "id": "38e65fd5", + "metadata": {}, + "source": [ + "We want to analyse total no of product in monthly basis.Thus, we find the mean of total no of product in a month and draw a bargraph" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "294dde87", + "metadata": {}, + "outputs": [], + "source": [ + "index = seq(start_date,end_date,by ='month')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "7542d95e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " total\n", + "2020-01-31 41.03847\n", + "2020-02-29 40.91568\n", + "2020-03-31 39.27424\n", + "2020-04-30 37.63589\n", + "2020-05-31 38.75129\n", + "2020-06-30 38.75744\n", + "2020-07-31 38.35212\n", + "2020-08-31 40.43712\n", + "2020-09-30 38.90043\n", + "2020-10-31 37.99855\n", + "2020-11-30 41.20759\n", + "2020-12-31 38.46355" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "x<- as.xts(total, dateFormat =\"Date\")\n", + "(monthly<-apply.monthly(x,mean))\n", + "ggplot(monthly, aes(x=index, y=total)) + \n", + " geom_bar(stat = \"identity\", width=5) " + ] + }, + { + "cell_type": "markdown", + "id": "945feffd", + "metadata": {}, + "source": [ + "## DataFrame\n", + "Dataframe is essentially a collection of series with the same index. We can combine several series together into a dataframe. \n", + "For example we are making dataframe of a and b series" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "88a435ec", + "metadata": {}, + "outputs": [], + "source": [ + "a = data.frame(a,row.names = c(1:a1))" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "c4e2a6c1", + "metadata": {}, + "outputs": [], + "source": [ + "b = data.frame(b,row.names = c(1:b1))" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "2bb5177c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 2
ab
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" + ], + "text/latex": [ + "A data.frame: 9 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & a & b\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like \\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\t5 & 5 & Python\\\\\n", + "\t6 & 6 & and \\\\\n", + "\t7 & 7 & Pandas\\\\\n", + "\t8 & 8 & very \\\\\n", + "\t9 & 9 & much \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 2\n", + "\n", + "| | a <int> | b <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "| 5 | 5 | Python |\n", + "| 6 | 6 | and |\n", + "| 7 | 7 | Pandas |\n", + "| 8 | 8 | very |\n", + "| 9 | 9 | much |\n", + "\n" + ], + "text/plain": [ + " a b \n", + "1 1 I \n", + "2 2 like \n", + "3 3 to \n", + "4 4 use \n", + "5 5 Python\n", + "6 6 and \n", + "7 7 Pandas\n", + "8 8 very \n", + "9 9 much " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df<- data.frame(a,b)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "6531fe0e", + "metadata": {}, + "source": [ + "We can also rename the column name by using rename function" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "8f45d3a5", + "metadata": {}, + "outputs": [], + "source": [ + "df = \n", + " rename(df,\n", + " A = a,\n", + " B = b,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "0efbf2d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 2
AB
<int><chr>
11I
22like
33to
44use
55Python
66and
77Pandas
88very
99much
\n" + ], + "text/latex": [ + "A data.frame: 9 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like \\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\t5 & 5 & Python\\\\\n", + "\t6 & 6 & and \\\\\n", + "\t7 & 7 & Pandas\\\\\n", + "\t8 & 8 & very \\\\\n", + "\t9 & 9 & much \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "| 5 | 5 | Python |\n", + "| 6 | 6 | and |\n", + "| 7 | 7 | Pandas |\n", + "| 8 | 8 | very |\n", + "| 9 | 9 | much |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like \n", + "3 3 to \n", + "4 4 use \n", + "5 5 Python\n", + "6 6 and \n", + "7 7 Pandas\n", + "8 8 very \n", + "9 9 much " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "markdown", + "id": "8ac0204f", + "metadata": {}, + "source": [ + "We can also select a column in a dataframe using select function" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "88b51fdc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column A (series):\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 1
A
<int>
11
22
33
44
55
66
77
88
99
\n" + ], + "text/latex": [ + "A data.frame: 9 × 1\n", + "\\begin{tabular}{r|l}\n", + " & A\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t1 & 1\\\\\n", + "\t2 & 2\\\\\n", + "\t3 & 3\\\\\n", + "\t4 & 4\\\\\n", + "\t5 & 5\\\\\n", + "\t6 & 6\\\\\n", + "\t7 & 7\\\\\n", + "\t8 & 8\\\\\n", + "\t9 & 9\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 1\n", + "\n", + "| | A <int> |\n", + "|---|---|\n", + "| 1 | 1 |\n", + "| 2 | 2 |\n", + "| 3 | 3 |\n", + "| 4 | 4 |\n", + "| 5 | 5 |\n", + "| 6 | 6 |\n", + "| 7 | 7 |\n", + "| 8 | 8 |\n", + "| 9 | 9 |\n", + "\n" + ], + "text/plain": [ + " A\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 4\n", + "5 5\n", + "6 6\n", + "7 7\n", + "8 8\n", + "9 9" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cat(\"Column A (series):\\n\")\n", + "select(df,'A')" + ] + }, + { + "cell_type": "markdown", + "id": "45397ec4", + "metadata": {}, + "source": [ + "We will extract rows that meet a certain logical criteria on series" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "010bcba8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 4 × 2
AB
<int><chr>
11I
22like
33to
44use
\n" + ], + "text/latex": [ + "A data.frame: 4 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I \\\\\n", + "\t2 & 2 & like\\\\\n", + "\t3 & 3 & to \\\\\n", + "\t4 & 4 & use \\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 4 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 1 | 1 | I |\n", + "| 2 | 2 | like |\n", + "| 3 | 3 | to |\n", + "| 4 | 4 | use |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "1 1 I \n", + "2 2 like\n", + "3 3 to \n", + "4 4 use " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A<5,]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "082277db", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\n", + "
A data.frame: 1 × 2
AB
<int><chr>
66and
\n" + ], + "text/latex": [ + "A data.frame: 1 × 2\n", + "\\begin{tabular}{r|ll}\n", + " & A & B\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t6 & 6 & and\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 1 × 2\n", + "\n", + "| | A <int> | B <chr> |\n", + "|---|---|---|\n", + "| 6 | 6 | and |\n", + "\n" + ], + "text/plain": [ + " A B \n", + "6 6 and" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df$A>5 & df$A<7,]" + ] + }, + { + "cell_type": "markdown", + "id": "bf537050", + "metadata": {}, + "source": [ + "Creating a new columns. \n", + "\n", + "Code below creates a series which calculates the divergence of a from its mean value then merging into a existing dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "0bbd19f8", + "metadata": {}, + "outputs": [], + "source": [ + "df$DivA <- df$A - mean(df$A)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "f36d96af", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 3
ABDivA
<int><chr><dbl>
11I -4
22like -3
33to -2
44use -1
55Python 0
66and 1
77Pandas 2
88very 3
99much 4
\n" + ], + "text/latex": [ + "A data.frame: 9 × 3\n", + "\\begin{tabular}{r|lll}\n", + " & A & B & DivA\\\\\n", + " & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4\\\\\n", + "\t2 & 2 & like & -3\\\\\n", + "\t3 & 3 & to & -2\\\\\n", + "\t4 & 4 & use & -1\\\\\n", + "\t5 & 5 & Python & 0\\\\\n", + "\t6 & 6 & and & 1\\\\\n", + "\t7 & 7 & Pandas & 2\\\\\n", + "\t8 & 8 & very & 3\\\\\n", + "\t9 & 9 & much & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 3\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> |\n", + "|---|---|---|---|\n", + "| 1 | 1 | I | -4 |\n", + "| 2 | 2 | like | -3 |\n", + "| 3 | 3 | to | -2 |\n", + "| 4 | 4 | use | -1 |\n", + "| 5 | 5 | Python | 0 |\n", + "| 6 | 6 | and | 1 |\n", + "| 7 | 7 | Pandas | 2 |\n", + "| 8 | 8 | very | 3 |\n", + "| 9 | 9 | much | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA\n", + "1 1 I -4 \n", + "2 2 like -3 \n", + "3 3 to -2 \n", + "4 4 use -1 \n", + "5 5 Python 0 \n", + "6 6 and 1 \n", + "7 7 Pandas 2 \n", + "8 8 very 3 \n", + "9 9 much 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "markdown", + "id": "2be67ef7", + "metadata": {}, + "source": [ + "We are creating a series which calculates the length of string of A column then merge into existing dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "c67f2bd0", + "metadata": {}, + "outputs": [], + "source": [ + "df$LenB <- str_length(df$B)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "cef214b2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 9 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
77Pandas 26
88very 34
99much 44
\n" + ], + "text/latex": [ + "A data.frame: 9 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\t7 & 7 & Pandas & 2 & 6\\\\\n", + "\t8 & 8 & very & 3 & 4\\\\\n", + "\t9 & 9 & much & 4 & 4\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 9 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "| 7 | 7 | Pandas | 2 | 6 |\n", + "| 8 | 8 | very | 3 | 4 |\n", + "| 9 | 9 | much | 4 | 4 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 \n", + "7 7 Pandas 2 6 \n", + "8 8 very 3 4 \n", + "9 9 much 4 4 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "markdown", + "id": "e37d50de", + "metadata": {}, + "source": [ + "Selecting rows based on numbers " + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "59fe5316", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 5 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
\n" + ], + "text/latex": [ + "A data.frame: 5 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 5 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[0:5,]" + ] + }, + { + "cell_type": "markdown", + "id": "6abec1b7", + "metadata": {}, + "source": [ + "***Grouping means which groups the multiple columns based on certain conditions and we will use summarise function to see the difference***\n", + "\n", + "Suppose that we want to compute the mean value of column A for each given number of LenB. Then we can group our DataFrame by LenB, and find mean name them as a" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "f944a949", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = df %>% group_by(LenB) %>% summarise(a = mean(A))" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "8ffd39cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 2
LenBa
<int><dbl>
11.000000
23.000000
35.000000
46.333333
66.000000
\n" + ], + "text/latex": [ + "A tibble: 5 × 2\n", + "\\begin{tabular}{ll}\n", + " LenB & a\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t 1 & 1.000000\\\\\n", + "\t 2 & 3.000000\\\\\n", + "\t 3 & 5.000000\\\\\n", + "\t 4 & 6.333333\\\\\n", + "\t 6 & 6.000000\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 2\n", + "\n", + "| LenB <int> | a <dbl> |\n", + "|---|---|\n", + "| 1 | 1.000000 |\n", + "| 2 | 3.000000 |\n", + "| 3 | 5.000000 |\n", + "| 4 | 6.333333 |\n", + "| 6 | 6.000000 |\n", + "\n" + ], + "text/plain": [ + " LenB a \n", + "1 1 1.000000\n", + "2 2 3.000000\n", + "3 3 5.000000\n", + "4 4 6.333333\n", + "5 6 6.000000" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df1" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "3b859950", + "metadata": {}, + "outputs": [], + "source": [ + "df2 = df %>% group_by(LenB) %>%\n", + "summarise(MEAN = mean(A),count =length(DivA))" + ] + }, + { + "cell_type": "markdown", + "id": "5d3f0287", + "metadata": {}, + "source": [ + "## Printing and Plotting\n", + " When We call head(df) it will print out dataframe in a tabular form.\n", + "\n", + "The first step of any data science project is data cleaning and visualization, thus it is important to visualize the dataset and extract some useful imformation." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "69946dc7", + "metadata": {}, + "outputs": [], + "source": [ + "#dataset = read.csv(\"file name\")" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "4976f190", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A data.frame: 6 × 4
ABDivALenB
<int><chr><dbl><int>
11I -41
22like -34
33to -22
44use -13
55Python 06
66and 13
\n" + ], + "text/latex": [ + "A data.frame: 6 × 4\n", + "\\begin{tabular}{r|llll}\n", + " & A & B & DivA & LenB\\\\\n", + " & & & & \\\\\n", + "\\hline\n", + "\t1 & 1 & I & -4 & 1\\\\\n", + "\t2 & 2 & like & -3 & 4\\\\\n", + "\t3 & 3 & to & -2 & 2\\\\\n", + "\t4 & 4 & use & -1 & 3\\\\\n", + "\t5 & 5 & Python & 0 & 6\\\\\n", + "\t6 & 6 & and & 1 & 3\\\\\n", + "\\end{tabular}\n" + ], + "text/markdown": [ + "\n", + "A data.frame: 6 × 4\n", + "\n", + "| | A <int> | B <chr> | DivA <dbl> | LenB <int> |\n", + "|---|---|---|---|---|\n", + "| 1 | 1 | I | -4 | 1 |\n", + "| 2 | 2 | like | -3 | 4 |\n", + "| 3 | 3 | to | -2 | 2 |\n", + "| 4 | 4 | use | -1 | 3 |\n", + "| 5 | 5 | Python | 0 | 6 |\n", + "| 6 | 6 | and | 1 | 3 |\n", + "\n" + ], + "text/plain": [ + " A B DivA LenB\n", + "1 1 I -4 1 \n", + "2 2 like -3 4 \n", + "3 3 to -2 2 \n", + "4 4 use -1 3 \n", + "5 5 Python 0 6 \n", + "6 6 and 1 3 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "head(df)" + ] + }, + { + "cell_type": "markdown", + "id": "dcca35a8", + "metadata": {}, + "source": [ + "ggplot2 is a very good library as it simple to create complex plots from data in a data frame.\n", + "\n", + "It provides a more programmatic interface for specifying what variables to plot, how they are displayed, and general visual properties." + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "515c95b2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABaAAAALQCAMAAABR+ye1AAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAVU0lEQVR4nO3c61bbuhaAUYU7bIjf/203OEBoC0RObGlJmvNHNmeckchR449V\nY5omAEJKtQ8AgO8JNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQ\nAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0Q\nlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJ\nNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEAD\nBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQ\nAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQ\nAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEVCHQC4Iza\nlgj09ksARCfQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQAEEJNEBQAg0QlEADBCXQ\nAGUs/ufpBBqghLnOyxIt0AAlpC+Pi55yxiqbEmigM+mv/y55zrZPCbgEQEnp4yLHsuecsczW\nBBrozMdPCAUaIJR0Tp8FGmBrxxs43MUBEMfx7mf3QQPEsbjJfz67yFMCLgGwtYvqPAk0wDYu\nG54PL1HkKQGXANjQ5XWeBBpgdSsMz4fXKfKUgEsAbGOlOk8CDbCmtYbnw4sVeUrAJQDWtmqd\nJ4EGWMnKdZ4EGmANaw/Phxct8pSASwCsZos6TwINcKFNhufDKxd5SsAlANawWZ0ngQY433bD\n8+Hlizwl4BIAl9m4zpNAA5xl8zpPAg2w3PbD82GZIk8JuATAmcrUeRJogEUKDc+HtYo8JeAS\nAMsVrPMk0AC5Sg7PhwWLPCXgEgBLFK/zJNAAGSrUeRJogFNqDM+HhYs8JeASAFlq1XkSaIBf\nVBueD6sXeUrAJQBOqVrnSaABvld3eD4cQpGnBFwC4GcB6jwJNMA/QtR5EmiAP8UYnmcCDXAU\np86TQAN8CjQ8zwQaYBaszpNAA7yJNjzPBBoYXsg6TwINDC9onSeBBsYWdXieCTQwrsh1ngQa\nGFbo4Xkm0MCQwtd5EmhgRPGH55lAA4NppM6TQAODaabOk0ADI2lneJ4JNDCKtuo8CTQwiMaG\n55lAAwNosM6TQAP9a3F4npUM9Mtt2t1P08NV2t1ttATAm2OTm63zVDTQ+93rRqWH+7fHdL3J\nEgDT+wWN40OzCgb6Lr3OzXe7dLuf9vPX6y8BMH0kJLU8PM8KBno3PzGl/fyf3RZLAHzpc+Xj\nuFjBQKd0fPzm7x3pqzOXAJgjNWek+ZJUmKDfHvcmaGArH0Ne8yWpcA36bv/+9fpLAKRu+uwu\nDqAnqZcbOGbugwa6cWxyHz/K8puEQB/6aPIfBBroQX91ngQa6ECHw/NMoIHGdVrnSaCBtvU6\nPM8EGmhW13WeBBpoVud1ngQaaFPvw/NMoIH2jFDnSaCB5gwxPM8EGmjJOHWeBBpoyUh1ngQa\naMZQw/NMoIEmDFfnSaCBFow3PM8EGghu0DpPAg0EN2ydJ4EGIht3eJ4JNBDV2HWeBBoIavDh\neSbQQEDq/EaggWgMz+8EGghFnY8EGghEnb8SaCAKw/NfBBqIQZ3/IdBAAIbn7wg0UJs6/0Cg\ngbrU+UcCDVRkeP6NQAPVqPPvBBqow/B8kkADNahzBoEGijM85xFooCx1zibQQEnqvIBAA8UY\nnpcRaKAQdV5KoIESDM9nEGhgc+p8HoEGNqbO5xJoYEuG5wsINLAddb6IQAMbMTxfSqCBLajz\nCgQaWJ86r0KggZUZntci0MCq1Hk9Ag2sx/C8KoEGLvKlyeq8MoEGLjA3+f3Bibs2gQYucDhZ\nkzpvQqCB8332ufJxdEqggfOl9zo7Zzch0MD5PmZn5+wmBBo4V9LnbQk0cJ6vN3DUPpZOCTRw\nhuPPBf2EcDsCDSylyYUINLCMOhcj0MAChueSBBrIps5lCTSQx/BcnEADOdS5AoEGTjI81yHQ\nwO/UuRqBBn6jzhUJNPAjw3NdAg38QJ1rE2jgO4bnAAQa+Jc6hyDQwF8Mz1EINPCVOgci0MCR\nOoci0MA7w3M0Ag3M1DkegQYMz0EJNKDOQQk0DM7wHJdAw8jUOTSBhnGpc3ACDYMyPMcn0DAk\ndW6BQMN4DM+NEGgYjTo3Q6BhKIbnlgg0jEOdGyPQMAp1bo5AwxAMzy0SaBiAOrdJoKF3hudm\nCTT0TZ0bJtDQMcNz2wQaeqXOzRNo6JM6d0CgoUOG5z4INHRHnXsh0NAXw3NHBBp6os5dEWjo\nhuG5NwINfVDnDgk09ECduyTQ0DzDc68EGhqnzv0SaGiZ4blrAg3tUufOCTQ0yvDcv5KB3t/t\nXh/vr1K6ftxoCejascnqPISCgX7ZvX6k9q8Pb643WQJ6Njf5+ED/Cgb6Nt3sXx9uX15bfZvu\ntlgCenY4L5LheRwFA53S/v1hmvZpt8US0LHPPlc+DsopGujXh1368j/++r+/OHMJ6Fh6r7PT\nYxxFL3E8T9P928PbBP3rRWifQPjHx+Ti9BhHwUA/p93d83Szey3001V62mIJ6FbS5wGVvM3u\naXe8hnG/zRLQpeQGjjGV/UWVx9urtzrf3L9stgR059hkP58ZjN8khNA0eWQCDXGp8+AEGqJS\n5+EJNIRkeEagISJ1ZibQEI06806gIRTDM0cCDYGoM18JNERheOYvAg0hqDP/EmgIQJ35jkBD\nbYZnfiDQUJU68zOBhorUmd8INNRieOYEgYY61JmTBBoqMDyTQ6ChNHUmk0BDWepMNoGGggzP\nLCHQUIo6s5BAQxnqzGICDQUYnjmHQMPW1JkzCTRsS505m0DDhgzPXEKgYTPqzGUEGrZheOZi\nAg0bUGfWINCwOnVmHQIN6zI8sxqBhhWpM2sSaFiNOrMugYZ1GJ5ZnUDDGtSZDQg0XMzwzDYE\nGi6jzmxGoOES6syGBBrOZnhmWwIN51FnNifQcA51pgCBhsUMz5Qh0LCMOlOMQMMS6kxBAg3Z\nDM+UJdCQSZ0pbaVAP9/tLj6UE0tATYZnKlgj0C/3VykJNP1SZ+q4OND7x9c6p+unlY7nuyWg\nvC9NVmdquTDQj9fpzctqx/PvElDe3OT3B59Gqrkk0E+3rx/e3d3z+p9gpwR1HT6BSZ2p64JA\n797q/N+0xd8AnRVU9dnnysfB6C4IdEp3H1+sdjh/LQFVpPc6+yBSlwka/vExO/sgUtcK16D/\nE2i6kvSZINzFAX/4egNH7WNhdCvdB33jPmh6cPy5oJ8QEoDfJIR3mkw0/i0OmKkz8fjX7MDw\nTFACDepMUALN4AzPxCXQDE2diUygGZfhmeAEmkGpM/EJNENSZ1og0IzH8EwjBJrRqDPNEGiG\nYnimJQLNQNSZtgg0ozA80xyBZgjqTIsEmgGoM20SaHpneKZZAk3f1JmGCTQdMzzTNoGmW+pM\n6wSaPhme6YBA0yF1pg8CTXfUmV4INH0xPNMRgaYn6kxXBJpuGJ7pjUDTCXWmPwJNDwzPdEmg\naZ460yuBpnHqTL8EmpYZnumaQNMudaZzAk2jDM/0T6BpkjozAoGmPYZnBiHQNEadGYdA0xR1\nZiQCTTsMzwxGoGmFOjMcgaYJhmdGJNA0QJ0Zk0ATneGZYQk0oakzIxNoAlNnxibQRGV4ZngC\nTUzqDAJNRIZneCPQhKPOcCDQxGJ4hk9VAn3yFHSKDuXYZHWGrwSayuZPw/EB+FQw0OlPWyxB\ngw5/2Kc+EjCigoH+byfQ/OOzz5WPAwIqeYljf5OuX+ZX+O4lsutNV9J7nf2Zwz/KXoN+TOlx\ncg2aLz6+Hfszh38U/iHhy3W62Qs0H5I+w8+K38Vxn3ZPAs3MDRzwq/K32T1fnb7G7GwdgLuf\n4ZQa90HfCvTwNBky+FVvylNnyCLQFGZ4hlwCTVHqDPkEmnIMz7CIQFOKOsNCAk0RhmdYTqDZ\nnjrDWQSarakznEmg2ZThGc4n0GxIneESAs1WDM9wIYFmG+oMFxNoNmB4hjUINGtTZ1iJQLMu\ndYbVCDQrMjzDmgSa1agzrEugWYfhGVYn0KxBnWEDAs3FDM+wDYHmMuoMmxFoLqHOsCGB5myG\nZ9iWQHMmdYatCTTnMDxDAQLNcuoMRQg0CxmeoRSBZgl1hoIEmnzqDEUJNJkMz1CaQJNFnaE8\ngeY0wzNUIdCcos5QiUDzK8Mz1CPQ/EydoSqB5ifqDJUJNN8yPEN9As031BkiEGj+ZniGIASa\nP6kzhCHQfGF4hkgEmg/qDMEINAfqDOEINJPhGWISaAzPEJRAj87wDGEJ9NjUGQIT6IEZniE2\ngR7LscnqDOEJ9EjmJh8fgNgEeiSHfU2GZ2iDQA/ks8+VjwPII9ADSe91tr3QBoEeyMfsbHuh\nDQI9jKTP0BiBHkNyAwe0R6BHcGyynxBCQwS6e5oMrRLozqkztEuge2Z4hqYJdL/UGRon0J0y\nPEP7BLpH6gxdEOj+qDN0QqA7Y3iGfgh0V9QZeiLQ/TA8Q2cEuhPqDP0R6C6oM/RIoNtneIZO\nCXTr1Bm6JdBNMzxDzwS6XeoMnRPoVqkzdE+gm2R4hhEIdIPUGcYg0K0xPMMwBLot6gwDEeiG\nGJ5hLALdCnWG4Qh0G9QZBiTQDTA8w5gEOjx1hlEJdGyGZxiYQAemzjA2gQ5LnWF0Ah2T4RkQ\n6JDUGZgEOiDDM3Ag0MGoM/BBoCMxPANfCHQY6gz8SaCDUGfgbwIdgeEZ+IZA16fOwLcEujLD\nM/ATga5JnYFfCHQ96gz8SqArMTwDpwh0FeoMnCbQ5RmegSwCXZg6A7kEuih1BvIJdDmGZ2AR\ngS5FnYGFBLoIwzOwXMlA729Tun56f5FfX6WHmn1psjoD5ygY6P0uvbk5vEjngZ7f3/tD++8G\nqKJgoO/Sw2ulH3bX84v0HujDozoD5ysY6N3hiS+7q5fuA/3Z58rHAbSsYKA/arW/vv4u0Omr\nM5cII73Xufk3AlRUMNBXaf/x1XX3E/T7+2v+jQAVFQz0Q7p9/+olXXcd6KTPwApK3mZ391nl\npxNXMZoO29cbOGofC9Cyor+o8nzz8dXLbaeBPn7n6eBKOlCX3yRckSYDaxLo1agzsC6BXofh\nGVidQK9BnYENCPTFDM/ANgT6QuoMbEWgL2F4BjYk0GdTZ2BbAn0mdQa2JtDnMDwDBQj0cuoM\nFCHQCxmegVIEehF1BsoR6HyGZ6Aogc6kzkBpAp1FnYHyBPo0wzNQhUCfos5AJQL9K8MzUI9A\n/0KdgZoE+ieGZ6Aygf7+ANQZqE6gv1tenYEABPqfteUZiEGg/1pZnYEoBPrrsvIMBCLQx0XV\nGQhFoN9XlGcgGoGe1BmISaBd2gCCGj3QhmcgrLEDrc5AYAMH2vAMxDZsoNUZiG7MQBuegQYM\nGGh1BtowXKDVGWjFWIE2PAMNGSnQ6gw0ZZhAG56B1gwSaHUG2jNCoA3PQJO6D7Q6A63qPNDq\nDLSr50AbnoGm9RtodQYa12mgDc9A+7oMtDoDPegv0IZnoBNdBPrYZHUG+tFBoOcmHx8AOtFD\noA+PhmegM+0H+rPP2xwKQC19BPqtzgINdKaPQC99DkAD2g/0xzWOTQ4EoJ4eAu0GDqBLHQTa\nTwiBPnURaIAeCTRAUAINEJRAAwQl0ABBCTRAUAINEJRAAwQl0ABBCTRAUAINEJRAAwQl0ABB\nBQ00ADED3QX7lM1WZbNV2UbdqlHf91L2KZutymarso26VaO+76XsUzZblc1WZRt1q0Z930vZ\np2y2KputyjbqVo36vpeyT9lsVTZblW3UrRr1fS9ln7LZqmy2KtuoWzXq+17KPmWzVdlsVbZR\nt2rU972Ufcpmq7LZqmyjbtWo73sp+5TNVmWzVdlG3apR3/dS9imbrcpmq7KNulWjvu+l7FM2\nW5XNVmUbdatGfd9L2adstiqbrco26laN+r4BwhNogKAEGiAogQYISqABghJogKAEGiAogQYI\nSqABghJogKAEGiAogQYISqABghJogKAEGiAogQYISqAzPFyl3d2+9lG04j+fqSzPtyndvtQ+\nihbs73bDnoBOptPu0pvdmB+QxfY7n6kcTz5VmV52h60a8puZk+mk53T7ehY9pNvaB9KGm+Qz\nlWO3e572N+mu9nHEdztv0t2YJ6CT6aSbwx7pTpbHZKNyPM7V2add7QOJL418Ag75ps8y5udj\nqZd0baNy3Kbn2ofQivdrZmN+L3MyZdqn69qH0ILr9CLQOa7SdL+bL55xwv37JY772gdSg5Mp\n00N6qn0IDbhPj/6qkSWlm/knX7WPowUPbz8l3D3UPowqnEx5XnY3tQ+hAc/pxrWgPK/FeZ72\nt2OOhQvdz3dxjLlTTqYs+50LHBmu3u4aE+gcab4G/ZKuah9IfA9vlzhev5cNOUI7mbJcO48y\n3M6XgQQ6x9C3Jixzld6u1O/H/F7m85Hh5ep6yJvkl0qfah9JfG7ezDb097Ih3/RCT27gyCPQ\n+e7nv228+GiddrjNbtBbxp1KJzmJlpHnHC/pav92YfWx9oHEd5fe/h2OuzF/6dLJdNKtsXAR\nG5XlcGuC7/0ZrgfeKifTSf7evoyNyvN0nXZDDoXLzf+aXe2DqMPJBBCUQAMEJdAAQQk0QFAC\nDRCUQAMEJdAAQQk0QFACDRCUQAMEJdAAQQk0QFACDRCUQAMEJdAAQQk0QFACDRCUQAMEJdAA\nQQk0QFACDRCUQAMEJdAAQQk0QFACDRCUQAMEJdAAQQk0QFACDRCUQAMEJdAAQQk0QFACDRCU\nQAMEJdAAQQk0QFACDRCUQNOvlF5u0u5+/vrhKl09VD4eWEig6VdKu/TqrdDXb1+k69pHBIsI\nNP16LfJ+ekhX0/SYds/T8y491j4kWEKg6VdK/82P03STnl6/ejJC0xaBpl8pfTwevvr4DzTC\nB5Z+CTSN84GlXwJN43xg6dcx0B/XoG8qHxEsItD06xhod3HQJIGmX8dAuw+aJgk0/foS6Olh\n5zcJaY5AAwQl0ABBCTRAUAINEJRAAwQl0ABBCTRAUAINEJRAAwQl0ABBCTRAUAINEJRAAwQl\n0ABBCTRAUAINEJRAAwQl0ABBCTRAUAINEJRAAwQl0ABBCTRAUAINEJRAAwQl0ABBCTRAUAIN\nEJRAAwQl0ABBCTRAUP8Dr9AKPKfUMOkAAAAASUVORK5CYII=", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(df$A,type = 'o',xlab = \"no\",ylab = \"A\")" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "41b872c9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\ngCgDDRD1/8/symIMSQHiAAAAAElFTkSuQmCC", + "text/plain": [ + "plot without title" + ] + }, + "metadata": { + "image/png": { + "height": 360, + "width": 720 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "barplot(df$A, ylab = 'A',xlab = 'no')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "4.1.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From a0f080163628829bee2b256e82448eaa64862a98 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 13 Oct 2021 15:02:00 -0400 Subject: [PATCH 30/30] video! --- README.md | 6 ++++-- ds-for-beginners.png | Bin 0 -> 268917 bytes 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 ds-for-beginners.png diff --git a/README.md b/README.md index d101b7b6..c90d8ec7 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,11 @@ Azure Cloud Advocates at Microsoft are pleased to offer a 10-week, 20-lesson cur > **Students**, to use this curriculum on your own, fork the entire repo complete the exercises on your own, starting with a pre-lecture quiz, then reading the lecture completing the rest of the activities. Try to create the projects by comprehending the lessons rather than copying the solution code; however that code is available in the /solutions folders in each project-oriented lesson. Another idea would be to form a study group with friends go through the content together. For further study, we recommend [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa). - +[![Promo video](ds-for-beginners.png)](https://youtu.be/8mzavjQSMM4 "Promo video") + +> 🎥 Click the image above for a video about the project the folks who created it! ## Pedagogy diff --git a/ds-for-beginners.png b/ds-for-beginners.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5be8fe8008278a14d15e0fdde78a3a4449b4eb GIT binary patch literal 268917 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

#Qg7v$1R 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