This code provides a solution to convert character data to numeric using coding in R. This is only recommend if you cannot convert your data using Excel.

setwd("~/Binghamton/Harp325")
library(dplyr)
library(tidyr)
library(ggplot2)

#we'll start by loading in some data to play with! We'll use data on US Comp Sci majors for this tutorial. 
majors <- read.csv("comp_sci_data.csv")

str(majors)

We can see here that the format does not look right! The reason is that there are commas in the numbers over 1000 - R assumes that these commas are character data.

#This code is complicated, but it basically removes the commas in the data
#To use, just replace the name "majors" with whatever dataframe you're using
majors <- apply(majors, 2, function(x) gsub(",", "", gsub("([a-zA-Z]),", "\\1 ", x)))
#the previous code converts the data to a matrix, so we need to convert it back to a dataframe
majors <- as.data.frame(majors)

#this code allows us to change only columns 3-13 to numeric 
majors[,3:13] <- sapply(majors[,3:13],as.numeric)

#Let's check our work - it works!
str(majors)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGNvZGUgcHJvdmlkZXMgYSBzb2x1dGlvbiB0byBjb252ZXJ0IGNoYXJhY3RlciBkYXRhIHRvIG51bWVyaWMgdXNpbmcgY29kaW5nIGluIFIuIFRoaXMgaXMgb25seSByZWNvbW1lbmQgaWYgeW91IGNhbm5vdCBjb252ZXJ0IHlvdXIgZGF0YSB1c2luZyBFeGNlbC4gDQoNCmBgYHtyfQ0Kc2V0d2QoIn4vQmluZ2hhbXRvbi9IYXJwMzI1IikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KDQojd2UnbGwgc3RhcnQgYnkgbG9hZGluZyBpbiBzb21lIGRhdGEgdG8gcGxheSB3aXRoISBXZSdsbCB1c2UgZGF0YSBvbiBVUyBDb21wIFNjaSBtYWpvcnMgZm9yIHRoaXMgdHV0b3JpYWwuIA0KbWFqb3JzIDwtIHJlYWQuY3N2KCJjb21wX3NjaV9kYXRhLmNzdiIpDQoNCnN0cihtYWpvcnMpDQpgYGANCldlIGNhbiBzZWUgaGVyZSB0aGF0IHRoZSBmb3JtYXQgZG9lcyBub3QgbG9vayByaWdodCEgVGhlIHJlYXNvbiBpcyB0aGF0IHRoZXJlIGFyZSBjb21tYXMgaW4gdGhlIG51bWJlcnMgb3ZlciAxMDAwIC0gUiBhc3N1bWVzIHRoYXQgdGhlc2UgY29tbWFzIGFyZSBjaGFyYWN0ZXIgZGF0YS4gDQoNCmBgYHtyfQ0KI1RoaXMgY29kZSBpcyBjb21wbGljYXRlZCwgYnV0IGl0IGJhc2ljYWxseSByZW1vdmVzIHRoZSBjb21tYXMgaW4gdGhlIGRhdGENCiNUbyB1c2UsIGp1c3QgcmVwbGFjZSB0aGUgbmFtZSAibWFqb3JzIiB3aXRoIHdoYXRldmVyIGRhdGFmcmFtZSB5b3UncmUgdXNpbmcNCm1ham9ycyA8LSBhcHBseShtYWpvcnMsIDIsIGZ1bmN0aW9uKHgpIGdzdWIoIiwiLCAiIiwgZ3N1YigiKFthLXpBLVpdKSwiLCAiXFwxICIsIHgpKSkNCiN0aGUgcHJldmlvdXMgY29kZSBjb252ZXJ0cyB0aGUgZGF0YSB0byBhIG1hdHJpeCwgc28gd2UgbmVlZCB0byBjb252ZXJ0IGl0IGJhY2sgdG8gYSBkYXRhZnJhbWUNCm1ham9ycyA8LSBhcy5kYXRhLmZyYW1lKG1ham9ycykNCg0KI3RoaXMgY29kZSBhbGxvd3MgdXMgdG8gY2hhbmdlIG9ubHkgY29sdW1ucyAzLTEzIHRvIG51bWVyaWMgDQptYWpvcnNbLDM6MTNdIDwtIHNhcHBseShtYWpvcnNbLDM6MTNdLGFzLm51bWVyaWMpDQoNCiNMZXQncyBjaGVjayBvdXIgd29yayAtIGl0IHdvcmtzIQ0Kc3RyKG1ham9ycykNCmBgYA0KDQo=