# data[].attributes.attachment_link.description
A guide to creating modern data visualizations with R. Starting with data preparation, topics include how to create effective univariate, bivariate, and multivariate graphs. In addition specialized graphs including geographic maps, the display of change over time, flow diagrams, interactive graphs, and graphs that help with the interpret statistical models are included.

# data[].attributes.attachment_link.readable_text
[This article was first published on R - Greetz to Geeks, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here) Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

The which() function will return the position of the elements(i.e., row number/column number/array index) in a logical vector which are TRUE. Unlike the other base R functions, the which() will accept only the arguments with typeof as logical while the others will give an error.

Syntax: which(x, arr.ind = FALSE, useNames = TRUE)
arrayInd(ind, .dim, .dimnames = NULL, useNames = FALSE)

x: can be a logical vector or an array. NAs are treated as FALSE and allowed. But they will be omitted
arr.ind: logical; should array indices be returned when x is an array?
ind: integer-valued index vector, as resulting from which(x)
.dim: integer vector
.dimnames: optional list of character dimnames(.), of which only .dimnames[[1]] is used
useNames: logical indicating if the value of arrayInd() should have (non-null) dimnames at all

Examples:

> which(letters == "g")
[1] 7


> x <- c(1,5,8,4,6)
> x
[1] 1 5 8 4 6
> which(x == 5)
[1] 2
> which(x != 5)
[1] 1 3 4 5


> datasets::npk
block N P K yield
1   1  0 1 1 49.5
2   1  1 1 0 62.8
3   1  0 0 0 46.8
4   1  1 0 1 57.0
5   2  1 0 0 59.8
6   2  1 1 1 58.5
7   2  0 0 1 55.5
8   2  0 1 0 56.0
9   3  0 1 0 62.8
10  3  1 1 1 55.8
11  3  1 0 0 69.5
12  3  0 0 1 55.0
13  4  1 0 0 62.0
14  4  1 1 1 48.8
15  4  0 0 1 45.5
16  4  0 1 0 44.2
17  5  1 1 0 52.0
18  5  0 0 0 51.5
19  5  1 0 1 49.8
20  5  0 1 1 48.8
21  6  1 0 1 57.2
22  6  1 1 0 59.0
23  6  0 1 1 53.2
24  6  0 0 0 56.0
> which(npk$yield == 62)
[1] 13
> which((npk$yield == 48.8) & (npk$N == 1))
[1] 14
which(npk$yield == max(npk$yield))
[1] 11


> x <- matrix(1:16,4,4)
> x
[,1] [,2] [,3] [,4]
[1,]  1    5   9    13
[2,]  2    6  10    14
[3,]  3    7  11    15
[4,]  4    8  12    16
> which.min(x)
[1] 1
> which.max(x)
[1] 16
> which(x %% 2 == 0)
[1] 2 4 6 8 10 12 14 16
> which(x %% 2 == 0, arr.ind=TRUE)
row col
[1,] 2 1
[2,] 4 1
[3,] 2 2
[4,] 4 2
[5,] 2 3
[6,] 4 3
[7,] 2 4
[8,] 4 4
> which(x %% 2 == 0, arr.ind=TRUE, useNames = FALSE)
[,1] [,2]
[1,] 2   1
[2,] 4   1
[3,] 2   2
[4,] 4   2
[5,] 2   3
[6,] 4   3
[7,] 2   4
[8,] 4   4

# data[].attributes.attachment_link.description
This article was first published on R - Greetz to Geeks , and kindly contributed to R-bloggers]. (You can report issue about the content on this page here) Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

# data[].attributes.attachment_link.readable_text
To sort a data frame in R, use the order( ) function. By default, sorting is ASCENDING. Prepend the sorting variable by a minus sign to indicate DESCENDING order. Here are some examples.
# sorting examples using the mtcars dataset
attach(mtcars)

# sort by mpg
newdata <- mtcars[order(mpg),]

# sort by mpg and cyl
newdata <- mtcars[order(mpg, cyl),]

#sort by mpg (ascending) and cyl (descending)
newdata <- mtcars[order(mpg, -cyl),]

detach(mtcars)

To practice, try this sorting exercise with the order() function.

# data[].attributes.attachment_link.description
To sort a data frame in R, use the order( ) function. By default, sorting is ASCENDING. Prepend the sorting variable by a minus sign to indicate DESCENDING order. Here are some examples.

# data[].attributes.attachment_link.readable_text
A dummy variable is a type of variable that we create in regression analysis so that we can represent a categorical variable as a numerical variable that takes on one of two values: zero or one.

For example, suppose we have the following dataset and we would like to use age and marital status to predict income:

To use marital status as a predictor variable in a regression model, we must convert it into a dummy variable.

Since it is currently a categorical variable that can take on three different values ("Single", "Married", or "Divorced"), we need to create k-1 = 3-1 = 2 dummy variables.

To create this dummy variable, we can let "Single" be our baseline value since it occurs most often. Thus, here's how we would convert marital status into dummy variables:

This tutorial provides a step-by-step example of how to create dummy variables for this exact dataset in R and then perform regression analysis using these dummy variables as predictors.

First, let's create the dataset in R:

#create data frame df <- data.frame(income=c(45000, 48000, 54000, 57000, 65000, 69000, 78000, 83000, 98000, 104000, 107000), age=c(23, 25, 24, 29, 38, 36, 40, 59, 56, 64, 53), status=c('Single', 'Single', 'Single', 'Single', 'Married', 'Single', 'Married', 'Divorced', 'Divorced', 'Married', 'Married')) #view data frame df income age status 1 45000 23 Single 2 48000 25 Single 3 54000 24 Single 4 57000 29 Single 5 65000 38 Married 6 69000 36 Single 7 78000 40 Married 8 83000 59 Divorced 9 98000 56 Divorced 10 104000 64 Married 11 107000 53 Married

Step 2: Create the Dummy Variables

Next, we can use the ifelse() function in R to define dummy variables and then define the final data frame we'd like to use to build the regression model:

#create dummy variables married <- ifelse(df$status == 'Married', 1, 0) divorced <- ifelse(df$status == 'Divorced', 1, 0) #create data frame to use for regression df_reg <- data.frame(income = df$income, age = df$age, married = married, divorced = divorced) #view data frame df_reg income age married divorced 1 45000 23 0 0 2 48000 25 0 0 3 54000 24 0 0 4 57000 29 0 0 5 65000 38 1 0 6 69000 36 0 0 7 78000 40 1 0 8 83000 59 0 1 9 98000 56 0 1 10 104000 64 1 0 11 107000 53 1 0

Step 3: Perform Linear Regression

Lastly, we can use the lm() function to fit a multiple linear regression model:

#create regression model model <- lm(income ~ age + married + divorced, data=df_reg) #view regression model output summary(model) Call: lm(formula = income ~ age + married + divorced, data = df_reg) Residuals: Min 1Q Median 3Q Max -9707.5 -5033.8 45.3 3390.4 12245.4 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 14276.1 10411.5 1.371 0.21266 age 1471.7 354.4 4.152 0.00428 ** married 2479.7 9431.3 0.263 0.80018 divorced -8397.4 12771.4 -0.658 0.53187 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 8391 on 7 degrees of freedom Multiple R-squared: 0.9008,	Adjusted R-squared: 0.8584 F-statistic: 21.2 on 3 and 7 DF, p-value: 0.0006865

The fitted regression line turns out to be:

Income = 14,276.1 + 1,471.7*(age) + 2,479.7*(married) - 8,397.4*(divorced)

We can use this equation to find the estimated income for an individual based on their age and marital status. For example, an individual who is 35 years old and married is estimated to have an income of $68,264:

Income = 14,276.2 + 1,471.7*(35) + 2,479.7*(1) - 8,397.4*(0) = $68,264

Here is how to interpret the regression coefficients from the table:

Intercept: The intercept represents the average income for a single individual who is zero years old. Obviously you can't be zero years old, so it doesn't make sense to interpret the intercept by itself in this particular regression model.

Age: Each one year increase in age is associated with an average increase of $1,471.70 in income. Since the p-value (.004) is less than .05, age is a statistically significant predictor of income.

Married: A married individual, on average, earns $2,479.70 more than a single individual. Since the p-value (0.800) is not less than .05, this difference is not statistically significant.

Divorced: A divorced individual, on average, earns $8,397.40 less than a single individual. Since the p-value (0.532) is not less than .05, this difference is not statistically significant.

Since both dummy variables were not statistically significant, we could drop marital status as a predictor from the model because it doesn't appear to add any predictive value for income.

# data[].attributes.attachment_link.title
How to Create Dummy Variables in R (Step-by-Step)

# data[].attributes.attachment_link.description
A dummy variable is a type of variable that we create in regression analysis so that we can represent a categorical variable as a numerical variable that takes on one of two values: zero or one.

# data[].attributes.attachment_link.readable_text
Marital status ("married", "single", "divorced")

Smoking status ("smoker", "non-smoker")

Eye color ("blue", "green", "hazel")

Level of education (e.g. "high school", "Bachelor's degree", "Master's degree")

Quantitative Variables: Variables that take on numerical values. Examples include:

Height of an individual

Population size of a city

Number of students in a class

Number of square feet in a house

The following table summarizes the difference between these two types of variables:

Examples: Categorical vs. Quantitative Variables

Use the following examples to gain a better understanding of categorical vs. quantitative variables.

Example 2: Vacation Locations

Example 3: Political Party

Example 4: Running Times

How to Describe Categorical & Quantitative Variables

We can summarize categorical variables by using frequency tables.

For example, suppose we collect data on the eye color of 100 individuals. Since "eye color" is a categorical variable, we might use the following frequency table to summarize its values:

We can summarize quantitative variables using a variety of descriptive statistics.

For example, suppose we collect data on the square footage of 100 homes. Since "square footage" is a quantitative variable, we might use the following descriptive statistics to summarize its values:

These metrics give us an idea of where the center value is located as well as how spread out the values are for this variable.

# data[].attributes.attachment_link.title
Categorical vs. Quantitative Variables: Definition + Examples

# data[].attributes.attachment_link.description
Marital status ("married", "single", "divorced") Smoking status ("smoker", "non-smoker") Eye color ("blue", "green", "hazel") Level of education (e.g. "high school", "Bachelor's degree", "Master's degree") Quantitative Variables: Variables that take on numerical values.

# data[].attributes.attachment_link.description
Not all data frames are as clean and tidy as you would expect. Therefore, after importing your dataset into RStudio, most of the time you will need to prepare it before performing any statistical analyses. Data manipulation can even sometimes take longer than the actual analyses when the quality of the data is poor.

# data[].attributes.attachment_link.readable_text
According to DOMO, over 2.5 quintillion bytes of data are generated every single day, and 90% of the data in this world has been created in the last two years. It is a tough task to manage this huge amount of data and make sense of all of it.

So, the majority of organizations are using Business Intelligence Visualization tools to derive value from data. Among these, Power BI is one of the best visualization tools to handle the data in distinct patterns and make observations. Data proliferation can be managed as part of the data science process, which includes data visualization. Using different Power BI visuals or chart types in 2021, you can manage a vast amount of data quickly and effectively.

Top 30 Power BI Visuals List and Chart Types
1. What is Data Visualization? 2. Importance of Data Visualization 3. Types of Power BI Charts 4. How to Create a Power BI Visualization? 5. What is Power BI Desktop Visualization? 6. Power BI Custom Visualization Types
Now, let us know what is data visualization and its importance in this business world.

What is Data Visualization?

Data Visualization is a process of taking raw data and transforming it into graphical or pictorial representations such as charts, graphs, diagrams, pictures, and videos which explain the data and allow you to gain insights from it. So, users can quickly analyze the data and prepare reports to make business decisions effectively.

Importance of Data Visualization:

We are inherently in the visual world where pictures or images speak more than words. So it is easy to visualize a large amount of data using graphs and charts than depending on reports or spreadsheets.

Data visualization is a quick and easy way to convey concepts to the end-users, and you can do experiments with different scenarios by making slight changes. It can also:

Clarifies which element influences customer behavior.

Identifies the area to which you need to pay attention.

Guides you to understand which product should be placed in which location.

Predicts the sales volume.

The better you visualize your points, the better you can leverage the information to the end-users.

You might have confusion regarding selecting the correct data visualization for the data sets you have. The right data visualization helps you to boost the impact of your data. Business Intelligence platforms like Power BI help in dealing with the different visualizations of data sets in a secure manner.

Now, we are going to discuss the list of Power BI chart types in 2021.

Top Power BI Visuals List

Here are the chart types in Power BI:

1. Area Charts

The area chart depends on line charts to display quantitative graphical data. The area between the axis and lines is commonly filled with colors, textures, and patterns. You can compare more than two quantities with area charts. It shows the trend changes over time and can be used to attract the attention of the users to know the total changes across the trends.
For Instance:
The below Area chart clearly shows you how the usage of Tableau, Power BI, and Looker varies over the past six years.

2. Line Charts

Line charts are mostly used charts to represent the data and are characterized by a series of data points connected by a straight line. Each point in the line corresponds to a data value in the given category. It shows the exact value of the plotted data. Line charts should only be used to measure the trends over a period of time, e.g. dates, months, and years
For Instance:
The below line chart shows the popularity of the Microsoft Power BI keyword in Google search across the world. It's clearly indicating that the popularity of Power BI has been increasing gradually since its inception.

3. Bar Charts

In the list of Power BI visualization types, next, we are going to discuss bar charts.

Bar charts are mostly used graphs because they are simple to create and easy to understand. Bar charts are also called horizontal charts that represent the absolute data. They are useful to display the data that include negative values because it is possible to position the bars above and below the x-axis.
For Instance:
We have shown you the Power BI Developer Salary trends (Based on neuvvo.com) in different countries using the bar chart.

The above image shows the comparison of Power BI developer Salary trends in 5 different countries (UK, India, Canada, Australia, USA).

4. Column Charts

Column charts are similar to bar charts, and the only difference between these two is, column chart divides the same category data into the clusters and compares within the clusters. Also, it compares the data from other clusters.
For Instance:
Let us consider one example in which we compared the BI market share with the past years.

If you have observed the below column chart, it is clear that the BI market share has been increasing gradually.

5. Combo Charts

A combo chart is a combination of both the column charts and line charts that help you to make a quicker comparison of the data. The combo chart shows the relationship between two measures in a single visualization. It also helps to compare multiple measures with different values.
For Instance:
In the above combo chart, you can see the comparison between last year's and current year's sales of a product and also the current year's gross margin. With the help of this combo chart, an organization can quickly analyze the data about the product to make business decisions quickly.

6. Pie Charts

A pie chart is a circular statistical chart, and it shows the whole data in parts. Each portion of a pie chart represents the percentages, and the sum of all parts should be equal to 100%. The whole data can be divided into slices to show the numerical propositions of each part of the data. Pie charts are mostly used to represent the same category of data. It helps users to understand the data quickly. They are widely used in education, the business world, and communication media.
For Instance:
In the below Pie chart, it is clear that which programming language is on the top list in 2019.

7. Doughnut Charts

Doughnuts are similar to pie charts, and it is named as doughnut chart because it looks similar to a doughnut. You can easily understand the data because doughnut charts show the whole data into the proposition. It is the most useful chart when you need to display various propositions that make up the final value.
For Instance:
Let us consider an example, top BI tools market share across the globe.

8. Gauge Charts

A gauge chart is also known as a speedometer or dial chart. It uses the needle to read the data, and it shows the information on a dial. The gauge chart, it represents the value of each needle as it reads the data according to the axis or colored data. These charts are useful to compare the values between the variables either by using multiple needles on the same gauge or different gauges.

For Instance: The above gauge chart shows you the average gross sales of the company.

9. Funnel Charts

The funnel chart is a type of chart which is used to visualize the data that flows from one phase to another phase. In the funnel chart, the whole data is considered as 100%, and in each phase, it is represented as numerical propositions of the data.
For Instance:
The above Funnel charts show the flow of each phase. In the below image you can see the total leads per day is 272, the quality leads are 89, solution leads are 72, proposal leads are 36, and finalize leads are 12.

10. Scatter Charts

Scatter charts are used to visualize the data using the dots that represent the values obtained from two different variables, such as the x-axis and y-axis. These charts are used to show the relationship between two different variables. It is also called a correlation plot because it shows how two variables are correlated to each other.

Till now, we discussed the top 10 Power BI visualization types. Now we are going to discuss the remaining visualization types with detailed information.

11. Bubble Charts

Bubble charts show the data in the form of a circle. The values of the variables are represented by the x-axis and y-axis. The size of the circle represents the measure of the variables.
For Instance:
In the below bubble chart, you can observe that on X-axis, the community is measured, and quality is measured on Y-axis. Each bubble represents the size of the community.

12. Waterfall Charts

A waterfall chart is used to show how initial values are increasing and decreasing gradually by a series of values to arrive at the final value.
For Instance:
Let us consider an example in which you can plot your company's annual profit in different countries, and you can add different sources of income and losses to know the net profit of your company.

13. Maps

Maps are divided into three types, and they are listed below:

A). Regional Maps:

Regional maps use different colors to represent the distribution of a specific range of values on the map.

B). Point Maps

A point map is used to represent the geographical distribution of data by plotting the same size points on the geographical background. It helps the user to grasp the overall distribution of the data, but it is a tough task if you want to observe specific data.

A flow map is a type of map that is particularly designed to show specific themes connected with a particular geographical area. It is used in cartography to show the movements of the objects between two or more areas.

14. Slicers Charts

Slicers charts are visual filters. Using slicers, you can filter or sort your data by clicking on the type of data you want. In the below example, you can see all-region sales. In case if you want to see particular region sales, then click on that region, and it shows the specific region's sales.

15. Tree Maps

Treemaps display hierarchical data set in a nested rectangle. At each level, hierarchy is represented by a color. The size of the space in the rectangle depends on the data values. The rectangular boxes are arranged in size from top left to bottom right.
For Instance:
For example, you are analyzing your sales, and you have top-level branches for clothes categories: Rural, Mix, Youth, and Urban. Power BI treemaps split your categories into rectangle boxes (leaves); these boxes would be shaped and sized based on the number of sold.

16. Matrix Chart

A Matrix chart shows the relation between two or more variables in a data set. It is mainly made up of columns and rows to represent the data in the grid format. At least two variables are required to create a matrix chart if there is any third or fourth variable, and color or other dimensions that can be added to the matrix to represent the data.
For Instance:
The below matrix chart represents the company's revenue in different years with other factors.

A table is a grid that contains the related data in a series of rows and columns. Tables are useful if you are comparing the same category for many values.
For Instance:
In the below example, you can see the same category having multiple measures to compare.

We have seen the list of Power BI visualizations with detailed information. Now we are going to discuss how to create Power BI Visualisations.

How to Create a Power BI Visualization?

Power BI consists of various in-built data visualization components such as pie charts, maps, and bar charts. And, it contains complex models including funnels, gauge charts, waterfall, and many other components. The below image shows the default visualization icons.

You can create the Power BI visualizations in two ways. In the first method, you can easily drag and drop the fields from the right sidebar to the axis. According to your business requirements, you can add multiple fields to the axis.

In the second method, you should add a field from the right-side panel to the report canvas. In Power BI, the table visualization type is the default visualization, and it is possible to move the visualization on the reporting canvas by dragging and clicking on it. You can also change to different visualization from the visualization pane.

What is Power BI Desktop Visualization?

Power BI Desktop is a free application you can download on your computer, and that allows you to connect, transform and visualize the data. Power BI Desktop allows you to communicate with multiple sources of data and combines them to create relationships between the data to enhance the data model.

End-user can build visuals such as charts, graphs, and even videos and they can share these data visuals with others in the organization to create reports and dashboards using the data model.

How to Create Custom Visualizations in Power BI?

Custom visuals are created by developers using the custom visuals SDK to enable business users to see their data in a way that fits the business best. Report authors can import the custom visuals files into their reports and use them as any other Power BI visuals. Custom visuals are 1st class citizens in Power BI and can be filtered, highlighted, edited, and shared.

Now, we will discuss how to create custom visualization. The following are the steps to create custom visualization.

Step 1: Enter pbiviz command in the Powershell prompt and verify whether the Power BI tools package has been installed or not; if not, install the tool in your system.

+syyso+/ oms/+osyhdhyso/ ym/ /+oshddhys+/ ym/ /+oyhddhyo+/ ym/ /osyhdho ym/ sm+ ym/ yddy om+ ym/ shho /mmmm/ om+ / oys/ +mmmm /mmmm/ om+ oso ommmh +mmmm /mmmm/ om+ ymmmy smmmh +mmmm /mmmm/ om+ ymmmy smmmh +mmmm /mmmm/ om+ ymmmy smmmh +mmmm /mmmm/ om+ +dmd+ smmmh +mmmm /mmmm/ om+ /hmdo +mmmm /mmmm/ /so+//ym/ /dmmh /mmmm/ /osyhhy/ // dmmd ++ PowerBI Custom Visual Tool Usage: pbiviz [options] [command] Commands: new [name] Create a new visual info Display info about the current visual start Start the current visual package Package the current visual into a pbiviz file update [version] Updates the api definitions and schemas in the current visual. Changes the version if specified help [cmd] display help for [cmd] Options: -h, --help output usage information -V, --version output the version number --install-cert Install localhost certificate

Step 2: Review the output and add a list of supported commands.

Step 3: Enter the CircleCard command in the Powershell prompt to create a custom visual.

pbiviz new CircleCard.

pbiviz new CircleCard

Step 4: Now, navigate to the project folder.

cd CircleCard

Step 5: Start a custom visual. Your CircleCard is running on your hosted computer.

pbiviz start

Power BI - Individual Custom Visualizations Types

1. Aster Plot

Aster plot charts are similar to pie charts and doughnut charts. In the aster plot, you can be able to visualize up to two measures. The first measure controls the depth and the second measure controls the width of each section.

2. Bullet Charts

Bullet charts are the replacement of dashboard gauges and meters. They are useful to compare one or more measures to enrich the data. Bullet charts may be vertical, horizontal and may be stacked to allow the comparison of the data.

3. Calendar Charts

The calendar charts are unique charts and allow you to represent the distribution of values across a calendar. The custom calendar supports one data field and many measurable columns that are necessary for your project.

4. Chiclet Slicer

Chiclet Slicer is similar to the slicer and it is made of buttons. It has a lot more flexibility and includes the ability to use images instead of text as filters.

Chord diagram provides an easy way to identify the interrelationship data visualization in a matrix. A circular chart shows the relationship between the variables, and it connects the data points in the form of an arc in the chord chart.

A dot plot chart is similar to the scatter chart and bubble chart, and it allows you to compare multiple measures by their magnitudes and represent the data with the dot. It also allows you to plot the data along the x-axis.

7. Histogram

A histogram chart is similar to a column chart, and it visualizes the distribution of data over a certain time. Each bar in the histogram shows the frequency at each interval.

8. Radar Chart

A radar chart is a graphical chart to display various types of data in the form of two-dimensional charts. It compares two or more variables to display on the axes starting from the point. Stream Graph: A stream graph is a type of stacked graph which represents data around the central axis, it shows the changes in the data over a certain time through a flowing, organic shape that resembles a river-like stream.

9. Stream Graph

A stream graph is a type of stacked graph which represents data around the central axis, it shows the changes in the data over a certain time through a flowing, organic shape that resembles a river-like stream.

10. Sunburst

The sunburst chart is also called a multi-level pie chart, radial treemap, and ring chart which is used to visualize the typical hierarchical data. It consists of inner circles surrounded by rings of deeper hierarchy levels. The angle of each part is divided equally under its parent node.

11. Synoptic Panel

The synoptic panel allows you to present one or more images, assigning an arbitrary area. These areas are colored and highlighted to display the information.

Tornado charts are useful to analyze the sensor data compared to the relative variables. These charts are also called tornado charts or plots and a special type of bar chart.

13. Hexbin Scatter Plot

Hexbin scatters plot is a custom visual effect for Microsoft Power BI that displays the points on the top of hexagonal bins.

14. Enhanced Scatter Plot

Enhanced Scatter Plot is an open-source visual. In this chart, some more properties are added on top of the scatter visual including background images and shapes of positioning elements onto an image background.

Till now, we discussed the different types of Power BI Visualizations and how to create custom visualizations in Power BI. There are much more Power BI Visuals List and Chart Types available on this Microsoft platform. We hope that we gave detailed information on how and when to use the visualizations according to your business needs.

Got any questions? Leave a comment below and we will get back to you

# data[].attributes.attachment_link.title
Top 30 Power BI Visuals List & Chart Types Explained 2021 - Mindmajix

# data[].attributes.attachment_link.description
According to DOMO, over 2.5 quintillion bytes of data are generated every single day, and 90% of the data in this world has been created in the last two years. It is a tough task to manage this huge amount of data and make sense of all of it.

# data[].attributes.attachment_link.provider_name
Chandoo.org - Learn Excel, Power BI & Charting Online

# data[].attributes.attachment_link.title
Power Query Tutorial - What is it, How to use, Full examples, Tips & Tricks

# data[].attributes.attachment_link.description
Power Query (Get & Transform data in Excel) is a true game changer ?. It can simplify and automate various data activities. In this in-depth tutorial, learn all about it.

# data[].attributes.attachment_link.embed_code
Power Query Tutorial – What is it, How to use, Full examples, Tips & Tricks

# data[].attributes.attachment_link.readable_text
Real world data collection doesn't always follow the rules.

Sometimes a manufacturing sensor breaks and you can only get good readings on four of your six measurement spots on the assembly line. Perhaps one of the marks on the quality sheet is illegible. You could even be missing samples for an entire shift. Stuff happens.

Unfortunately, this can affect your statistical calculations. Certain procedures don't handle missing data gracefully. We're going to discuss a few ways to remove na or null values in R programming. This allows you to limit your calculations to rows in your R dataframe which meet a certain standard of completion. We also have a separate article that provides options for replacing na values with zero.

Identifying Missing Values

We can test for the presence of missing data or null values via the is.na() function. This method searches through every single column of the dataset, finding the outliers with an na value that might affect the calculation. Any element in the sequence within the R dataframe or matrix that has an na value will be returned, so you know which cells in the original data had null values before you actually use any method to remove them or replace them with zeros.

# remove na in r - test for missing values (is.na example) test <- c(1,2,3,NA) is.na(test)

In the previous example, is.na() will return a vector indicating which elements have a na value.

na.omit() - remove rows with na from a list

This is the easiest option. The na.omit() function returns a list without any rows that contain na values. This is the fastest way to remove na rows in the R programming language.

# remove na in r - remove rows - na.omit function / option ompleterecords <- na.omit(datacollected)

Passing your data frame or matrix through the na.omit() function is a simple way to purge incomplete records from your analysis. It is an efficient way to remove na values in r.

complete.cases() - returns vector of rows with na values

This allows you to perform more detailed review and inspection. The na.omit() function relies on the sweeping assumption that the dropped na rows (removed the na values) are similar to the typical member of the dataset, and are not total outliers.

This frequently doesn't hold true in the real world. Continuing our example of a process improvement project, small gaps in record keeping can be a signal of broader inattention to how the machinery needs to operate. If an operator with good record-keeping is a sign of diligent management, we would expect better performance from other areas of the process. So removing the na values in R might not be the right decision here. We should consider inspecting subsets of the original data to evaluate if other factors are at work.

We accomplish this with the complete.cases() function. This r function will examine a dataframe and return a result vector of the rows which contain missing values. We can examine the dropped records and purge them if we wish.

# na in R - complete.cases example fullrecords <- collecteddata[!complete.cases(collecteddata)] droprecords <- collecteddata[complete.cases(collecteddata)]

Fix in place using na.rm

For certain statistical functions in R, you can guide the calculation around a missing value through including the na.rm parameter (na.rm=True). The rows with na values are retained in the dataframe but excluded from the relevant calculations. Support for this parameter varies by package and function in the R language, so please check the documentation for your specific package.

This is often the best option if you find there are significant trends in the observations with na values. Use the na.rm parameter to guide your code around the missing values and proceed from there. We prepared a guide to using na.rm.

NA Values and regression analysis

Removal of missing values can distort a regression analysis. This is particularly true if you are working with higher order or more complicated models. Fortunately, there are several options in the common packages for working around these issues.

If you are using the lm function, it includes a na.action option. As part of defining your model, you can indicate how the regression function should handle missing values. Two possible choices are na.omit and na.exclude. na.omit will omit all rows from the calculations. The na.exclude option removes na values from the R calculations but makes an additional adjustment (padding out vectors with missing values) to maintain the integrity of the residual analytics and predictive calculations. This is often more effective that procedures that delete rows from the calculations.

You also have the option of attempting to "heal" the data using custom procedures. In this situation, map is.na against the data set to generate a logical vector that identifies which rows need to be adjusted. From there, you can build your own "healing" logic.

For more information about handy functions for cleaning up data (beyond ways to remove na in r), check out our functions reference and general tutorial.

report this ad

# data[].attributes.attachment_link.title
Data Cleanup: Remove NA rows in R - ProgrammingR

# data[].attributes.attachment_link.description
Real world data collection doesn't always follow the rules. Sometimes a manufacturing sensor breaks and you can only get good readings on four of your six measurement spots on the assembly line. Perhaps one of the marks on the quality sheet is illegible. You could even be missing samples for an entire shift.

# data[].attributes.attachment_link.readable_text
This tutorial describes how to identify and remove duplicate data in R.

You will learn how to use the following R base and dplyr functions:

1. R base functions

duplicated(): for identifying duplicated elements and

unique(): for extracting unique elements,

2. distinct() [dplyr package] to remove duplicate rows in a data frame.

Contents:

Required packages

Load the tidyverse packages, which include dplyr:

library(tidyverse)

Demo dataset

We'll use the R built-in iris data set, which we start by converting into a tibble data frame (tbl_df) for easier data analysis.

my_data <- as_tibble(iris) my_data

## # A tibble: 150 x 5 ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## <dbl> <dbl> <dbl> <dbl> <fct> ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa ## # ... with 144 more rows

Find and drop duplicate elements

The R function duplicated() returns a logical vector where TRUE specifies which elements of a vector or data frame are duplicates.

Given the following vector:

To find the position of duplicate elements in x, use this:

duplicated(x)

## [1] FALSE TRUE FALSE FALSE TRUE FALSE

Extract duplicate elements:

x[duplicated(x)]

If you want to remove duplicated elements, use !duplicated(), where ! is a logical negation:

x[!duplicated(x)]

Following this way, you can remove duplicate rows from a data frame based on a column values, as follow:

# Remove duplicates based on Sepal.Width columns my_data[!duplicated(my_data$Sepal.Width), ]

## # A tibble: 23 x 5 ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## <dbl> <dbl> <dbl> <dbl> <fct> ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa ## # ... with 17 more rows

Extract unique elements

Given the following vector:

You can extract unique elements as follow:

It's also possible to apply unique() on a data frame, for removing duplicated rows as follow:

unique(my_data)

## # A tibble: 149 x 5 ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## <dbl> <dbl> <dbl> <dbl> <fct> ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa ## # ... with 143 more rows

Remove duplicate rows in a data frame

The function distinct() [ dplyr package] can be used to keep only unique/distinct rows from a data frame. If there are duplicate rows, only the first row is preserved. It's an efficient version of the R base function unique().

Remove duplicate rows based on all columns:

my_data %>% distinct()

## # A tibble: 149 x 5 ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## <dbl> <dbl> <dbl> <dbl> <fct> ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa ## # ... with 143 more rows

Remove duplicate rows based on certain columns (variables):

# Remove duplicated rows based on Sepal.Length my_data %>% distinct(Sepal.Length, .keep_all = TRUE)

## # A tibble: 35 x 5 ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## <dbl> <dbl> <dbl> <dbl> <fct> ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa ## # ... with 29 more rows

# Remove duplicated rows based on # Sepal.Length and Petal.Width my_data %>% distinct(Sepal.Length, Petal.Width, .keep_all = TRUE)

## # A tibble: 110 x 5 ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## <dbl> <dbl> <dbl> <dbl> <fct> ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa ## # ... with 104 more rows

Summary

In this chapter, we describe key functions for identifying and removing duplicate data:

Remove duplicate rows based on one or more column values: my_data %>% dplyr::distinct(Sepal.Length)

R base function to extract unique elements from vectors and data frames: unique(my_data)

R base function to determine duplicate elements: duplicated(my_data)

# data[].attributes.attachment_link.title
Identify and Remove Duplicate Data in R - Datanovia

# data[].attributes.attachment_link.description
This tutorial describes how to identify and remove duplicate data in R. You will learn how to use the following R base and dplyr functions: R base functions duplicated(): for identifying duplicated elements and unique(): for extracting unique elements, distinct() [dplyr package] to remove duplicate rows in a data frame.

# data[].attributes.attachment_link.readable_text
Click on the title links to download the data. Please contact me before the class in which data will be used if you have any problems downloading!

Class exercises

nations.csv Data from the World Bank Indicators portal, which is an incredibly rich resource. Contains the following fields:

iso2c iso3c Two- and Three-letter codes for each country, assigned by the International Organization for Standardization.

country Country name.

population Estimated total population at mid-year, including all residents apart from refugees.

gdp_percap Gross Domestic Product per capita in current international dollars, corrected for purchasing power in different territories.

life_expect Life expectancy at birth, in years.

population Estimated total population at mid-year, including all residents apart from refugees.

birth_rate Live births during the year per 1,000 people, based on mid-year population estimate.

neonat_mortal_rate Neonatal mortality rate: babies dying before reaching 28 days of age, per 1,000 live births in a given year.

region income World Bank regions and income groups, explained here.

index.html index2.html Two simple webpages, which we will edit and publish on GitHub.

oil_production.csv Data on oil production by world region from 2000 to 2016, in thousands of barrels per day, from the U.S. Energy Information Administration.

ucb_stanford_2014.csv Data on federal government grants to UC Berkeley and Stanford University in 2014, downloaded from USASpending.gov.

ny.txt file scraped from State of New York site documenting disciplinary actions against doctors.

NY.html web page with a table giving links to pages documenting individual disciplinary actions against New York doctors.

nations.csv As for week 3, but lacking data for life expectancy.

pfizer.csv Payments made by Pfizer to doctors across the United States in the second half on 2009. Contains the following variables:

org_indiv Full name of the doctor, or their organization.

first_plus Doctor's first and middle names.

first_name last_name. First and last names.

city state City and state.

category of payment Type of payment, which include Expert-led Forums, in which doctors lecture their peers on using Pfizer's drugs, and `Professional Advising.

cash Value of payments made in cash.

other Value of payments made in-kind, for example puschase of meals.

total value of payment, whether cash or in-kind.

fda.csv Data on warning letters sent to doctors by the U.S. Food and Drug Administration, because of problems in the way in which they ran clinical trials testing experimental treatments. Contains the following variables:

name_last name_first name_middle Doctor's last, first, and middle names.

issued Date letter was sent.

office Office within the FDA that sent the letter.

disease_democ.csv Data illustrating a controversial theory suggesting that the emergence of democratic political systems has depended largely on nations having low rates of infectious disease, from the Global Infectious Diseases and Epidemiology Network and Democratization: A Comparative Analysis of 170 Countries, as used in week 1.

food_stamps.csv U.S. Department of Agriculture data on the number of participants, in millions, and costs, in $ billions, of the federal Supplemental Nutrition Assistance Program from 1969 to 2016.

kindergarten.csv Data from the California Department of Public Health, documenting enrollment and the number of children with complete immunizations at entry into kindergartens in California from 2001 to 2015. Contains the following variables:

district School district.

sch_code Unique identifying code for each school.

pub_priv Whether school is public or private.

school School name.

enrollment Number of children enrolled.

complete Number of children with complete immunizations.

start_year Year of entry (for the 2015-2016 school year, for example, this would be 2015).

nations.csv Data from World Bank World Development Indicators portal, giving data on population, GDP per capita, life expectancy, birth rate, neonatal mortality rate, region and income group for the world's nations, from 1990 onwards, as used in week 3.

sf_test_addresses.tsv Text file with list of 100 addresses in San Francisco, for geocoding exercise.

refine_geocoder.json JSON file to geocode using Open Refine.

sf_test_addresses_short.tsv The first 10 addresses from the previous file.

seismic Shapefile with data on the risk of a damaging earthquake in 2017 for the continental United States, from the U.S. Geological Survey.

seismic_raw As above, but not clipped to the coast and borders of the United States.

gdp_pc
gpd_pc.csv gdp_pc.csvt CSV file with World Bank data on GDP per capita for the world's nations in 2015, plus ancillary file for QGIS to understand the data types for each field.

ne_50m_admin_0_countries_lakes Natural Earth shapefile with boundary data for the world's nations.

sf_test_addresses Shapefile derived from the addresses we geocoded in week 9.

quakes.csv This file isn't in the folder. Instead, we will
use the U.S. Geological Survey's Earthquakes Archives API where we will search for all earthquakes since 1960 with a magnitude of 6 or greater that occured witin 6,000 kilometers of the geographic center of the contiguous United States, which this site tells us lies at a latitude of 39.828175 degrees and a longitude of -98.5795 degrees. Type this url into the address bar of your browser: A file calledquery.csv should download. Rename it quakes.csv and add to the week10 folder.

Download the data from this session from here, unzip the folder and place it on your desktop. It contains the following folders and files:

seismic.zip Zipped shapefile with data on the risk of a damaging earthquake in 2017 for the continental United States, from the U.S. Geological Survey.

seismic_raw.zip As above, but not clipped to the coast and borders of the United States.

ne_50m_admin_0_countries_lakes.zip Zipped Natural Earth shapefile with boundary data for the world's nations.

sf_test_addresses.zip Zipped shapefile of addresses we geocoded in week 9, with their coordinates derived from Bing Maps.

quakes.csv This file isn't in the folder. As for week 10, we will use the U.S. Geological Survey's Earthquakes Archives API where we will search for all earthquakes since 1960 with a magnitude of 6 or greater that occured witin 6,000 kilometers of the geographic center of the contiguous United States. Type this url into the address bar of your browser: A file calledquery.csv should download. Rename it quakes.csv and add to the week11 folder.

test.html A web page for embedding the Carto map we will make.

nations.csv Data from the World Bank Indicators portal, as used in week 3 and subsequently.

food_stamps.csv U.S. Department of Agriculture data on the number of participants, in millions, and costs, in $ billions, of the federal Supplemental Nutrition Assistance Program from 1969 to 2016, as used in week 8.

seismic.zip Zipped shapefile with data on the risk of a damaging earthquake in 2017 for the continental United States, from the U.S. Geological Survey.

test.html Web page to embed the interactive charts and maps we make today.

nations.csv Data from the World Bank Indicators portal, as used in week 3 and subsequently.

warming.csv NASA data on the annual average global temperature, from 1880 to 2015, compared the the average from 1951-1980.

maps Folder containing individual frames, from 1880 to 2015, each showing annual average temperatures across the globe, from 1880 to 2015, again compared the the average from 1951-1980. These were made from NASA data, using this software.

charts combined Empty folders into which we will save individual frames from which to make a video animation.

Final projects

These datasets are suggestions, in which there are definitely stories to be found and visualized. But you are encouraged to work on other datasets.

Lahman's Baseball Database contains a wealth of data on players, managers and teams from 1871 to 2015. Download the data in a series of CSV files from here.

This file documents the tables and fields, and how the tables should be joined together. For the player tables playerID is the unique code for each player that can be used to make joins.

The Lahman database is also available as an R package.

 install.packages("Lahman") library(Lahman) View(Master)

Although you will not see them as objects in your Environment tab in RStudio, each of the tables in the database is now available as a data frame. If you wish, you can convert them into objects in your local environment with the following code:

master <- Master

You can use the dplyr package to join, filter and aggregate the data as required.

The file storms.csv contains data on tropical storms and hurricanes compiled by the Hurricane Research Division of the U.S. National Oceanic and Atmospheric Administration. I have processed the raw data to give the following fields:

name Official name for each storm; unnamed storms are listed as Unnamed and also numbered.

year month day hour minute Date and time fields for each observation. For recent storms, observations are recorded every six hours.

timestamp Date and time fields combined into a full timestamp for each observation in standard YYYY-MM-DD HH:MM format.

record_ident The entry L indicates the time at which a storm made landfall, defined as the center of the system crossing a coastline, recorded from 1991 onwards. Other entries are explained in the file newhurdat-format.pdf.

status Options include HU for hurricane, TS for tropical storm and TD for tropical depression. Other entries are explained in newhurdat-format.pdf.

latitude longitude Geographic coordinates for the center of the system at each observation.

max_wind_kts max_wind_kph max_wind_mph Maximum sustained wind for each observation.

min_press Minimum air pressure at the center of the system for each observation.

This file contains data on storms from 1851 to 2016. However, you may wish to restrict your visualizations to storms from 1990 and later, as data on storms before the modern satellite era is less reliable.

This collection of data is good for mapping. If you need shapefiles for context and basemaps, try Natural Earth. These shapefiles each come with a README.html file that can be opened in a web browser for more information.

In its World Development Indicators, the World Bank has a trove of data on many aspects of countries' wealth and well-being: There are many stories to be told from this data.

You can download data for individual indicators, or read data directly into R using the WDI package. (Remember that you will need to convert data you download from the World Bank site from wide to long format; the R package will give you data in the correct long format.)

In week 5, we saw how to download Gapminder data in bulk. Its data library includes some measures not available from the World Bank, so if you cannot find the data you want among the World Bank Indicators, try searching for it at Gapminder's data download page.

Maintained by the National Consortium for the Study of Terrorism and Responses to Terrorism (START) at the University of Maryland in College Park, the Global Terrorism Database contains information on more than 170,000 terrorist attacks from 1970 to 2016. It is a rich source of information on terrorist groups across the globe, and the attacks they are responsible for.

You can download the data from here, selecting the Download full GTD dataset option. An extensive codebook details all of the fields in the data.

The data is provided as a series of spreadsheets in .xlsx format. I suggest that you import this data into Open Refine before processing any further, and create a new field giving the date of each event in standard YYYY-MM-DD format. This can be done from the eventid field. I can help with this.

You can then export as a CSV for analysis, visualization, and mapping.

Do read the Terms of Use and instructions for citing the source of the GTD data.

The Transportation Injury Mapping System details injury and fatal traffic accidents for the whole of California. The data comes from the California Highway Patrol's Statewide Integrated Traffic Records System and was then geocoded for mapping by UC Berkeley's Safe Transportation Research & Education Center.

You will need to create an account. I can help if you have problems querying and downloading data,.

The codebook explains the fields in these tables, and how they should be joined.

# data[].attributes.attachment_link.description
Click on the title links to download the data. Please contact me before the class in which data will be used if you have any problems downloading! nations.csv Data from the World Bank Indicators portal, which is an incredibly rich resource.

# data[].attributes.body
1.      Organisational ability

2.      Time management strategies

3.      Stress management techniques

4.      Ability to use library resources effectively

5.      Writing skills

6.      Knowledge of the correct format and conventions

7.      Statistical skills

8.      Good computer resources and skills

9.      Knowledge of R, Py, PBI, SQL, Excel

10.   Proofreading and presentation skills

# data[].attributes.attachment_link.readable_text
Surviving a research project

To successfully complete a research project there are a number of skills that you will need.

Organisational ability
Given the short period of time for completion of most projects, you must be very well organised. You will need to set clear goals, write yourself 'to do' lists, and develop a way of organising the enormous number of photocopies of journal articles and book chapters that you will acquire.

Time management strategies
Research projects always take a lot longer than anticipated. Given that it is likely that you will be pressed for time, you will need to develop strategies for managing your time effectively.

Stress management techniques
Most students find completing a research project quite stressful. There are a lot of things to do, and not enough time to do them. You should monitor your stress levels, implement strategies to keep stress under control, and seek help if you feel you're not coping.

Ability to use library resources effectively
To access suitable articles and books on your topic area you must be able to use the library effectively. You should know how to use the catalogues and databases easily and efficiently to search for the material you want. Arrange to do a library orientation session as early as possible in the semester.

Writing skills
Research reports and theses must be written clearly and concisely. No matter how good your research, if you are not able to describe and discuss it clearly, using appropriate language, grammar and punctuation, your thesis will not receive a good grade. If writing is not a strong point for you get help early on. Improving your writing takes time and practice. Don't leave it until the end of the year.

Knowledge of the correct format and conventions
The presentation and formatting of a research report or thesis must conform to certain conventions. In the social sciences this is often the guidelines of the American Psychological Association (referred to as APA style). Make sure you know what is required in your situation, particularly in relation to referencing, abbreviations etc.

Statistical skills
You have full responsibility for the choice and execution of the statistical techniques in your project. You should have a good understanding of these techniques, their purpose, when they are appropriate to use, and their interpretation. Go back and review the major statistical techniques, and get help if you need it.

Good computer resources and skills
You should have access to a good, reliable computer and printer for both data analysis and writing up of your report/thesis. Ensure you can use a word-processing program (e.g., Microsoft Word) effectively, and are able to save, copy, backup and retrieve files. Effective use of your computer will save you a lot of time and heartache. Always save and backup your work - computers have a nasty habit of crashing!

Knowledge of SPSS
SPSS is reasonably easy to learn and use, but you do need to practise to become skilled. Carefully follow the instructions in the SPSS Survival Manual when you are first learning a technique, but also explore and experiment as you build up your confidence. Make use of the SPSS Help menu to explore other options and techniques.

Proofreading and presentation skills
One of the easiest ways to get a poor grade on your report/thesis is to present it in a sloppy, difficult-to-read format, with lots of spelling and grammatical errors. The thesis is a major piece of work and it should be presented in the most professional looking manner possible. Check and double check for typos and get an obliging friend or relative to read through it for you. Finish and print out your thesis in plenty of time. Don't leave it until the last day as inevitably something will go wrong with your computer, printer etc. Allow time for unexpected disasters.

Research tips
I have listed below some general tips for surviving a research project with your sanity, health, sense of humour and personal relationships intact.

1. Get organised right from the start. The more organised you are the more efficiently you can get through the mountain of work you have to do to complete your research project. You will need to be organised both in terms of your time and also in how you go about storing and using the information you will collect. Remember, all of the work you do will eventually culminate in a report/thesis, so make sure you can find the material when the time comes to pull it altogether.

2. Get yourself a folder with plastic sleeves for storing your photocopied articles and readings. Keep a list of what you have so that you don't double-up. This saves both paper and money - think of the trees and your bank balance!

3. Try to summarise or at least highlight the main points in your articles as you get them. Make note of where they might be useful later on, in terms of potential scales to use, which statistics to use and how to present your results.

4. In a notebook keep a list of the useful journals and books you come across and where they can be found (library and call numbers). This will save you a lot of time later. This notebook might be a useful place to keep instructions on how to use the library catalogue etc. and any useful tips you learn along the way.

5. Collect together examples from the literature of how to present the results of your research. Use these as role models in preparing your own report/thesis.

6. Research is much easier and more enjoyable if you do it as part of a team rather than on your own. Try to team up with a number of other students. Agree to pass on to them any useful looking references that may be applicable to their topic; at the same time, they can keep an eye out for material for you.

7. Belonging to a group can also be helpful while you are learning the many skills you will need to acquire - for example, searching the databases, learning to use SPSS for Windows. If you belong to a self-help group you can all help one another when you hit problems. It also helps to know that there are other people struggling, not just you.

8. To write up your final report you will need access to, and the skills to use, a word-processing package. Your library should have a number of computers with Word for Windows installed. At times during the year these can be in heavy demand so you should probably get in early if you can and book a machine. If you are just a 'beginner' with computers and word processors, develop your skills as early in the year as possible - do a course, ask a fellow student to teach you, or borrow or invest in a teach-yourself book (the Word for Idiots or Word for Dummies books are quite good in this respect).

9. Throughout the year, particularly during the busy patches, keep an eye on your stress levels (you will become an expert at spotting the symptoms once you have done some of the readings!). Make sure you keep things in perspective, seek lots of social support from your fellow students and, if you can, keep a healthy sense of humour throughout the whole process.

# data[].attributes.attachment_link.title
Welcome to the SPSS Survival Manual website

# data[].attributes.attachment_link.description
To successfully complete a research project there are a number of skills that you will need. Organisational ability Given the short period of time for completion of most projects, you must be very well organised.