Below are the solutions to these exercises on the scan
function.
# Exercise 1 v <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan01.txt") # Exercise 2 # a) vec <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan02.txt") # b) matrix <- matrix(scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan02.txt"), nrow=10) # Exercise 3 v <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan03.txt", what="character") # Exercise 4 mat <- matrix(scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan04.txt", sep="\t", nlines=5), ncol=2) df <- as.data.frame(mat) # Exercise 5 list <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan05.txt", list(name="", x="character", y=1)) # Exercise 6 list <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan05.txt", list(name="", x="character", y=1), nlines = 50) # Exercise 7 list <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan.csv", what=list("character", 1, "character"), sep=";", dec = ",") # Exercise 8 list <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan06.txt", list(name="", x="character", y=1), nlines= 10, skip=2) # Exercise 9 list <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan07.txt", list("character", 1, "character"), skip=1, quote="/", sep=";") # Exercise 10 list <- scan("https://www.r-exercises.com/wp-content/uploads/2015/12/scan2.csv", list("character", 1, "character"), sep=",", quote="@", skip=1)
Enjoyed this exercise, made scan() much more understandable. It’s an interesting function.
I don’t understand how to use what argument in Exercise 6.
Why can we define y=1 in the solution and get the third column as numeric, but cannot define, say list(name=1, x=”character”, y=1)?
Why does not list(name=”numeric”, x=”character”, y=”numeric”) does not produce two numeric columns and one character column?
Very good exercise for me, for exercises to create matrix the correct answer should contain extra parameters such as byrow=TRUE, ncol=2