diff --git a/tests/syntax-tests/highlighted/R/test.r b/tests/syntax-tests/highlighted/R/test.r new file mode 100644 index 00000000..16209b47 --- /dev/null +++ b/tests/syntax-tests/highlighted/R/test.r @@ -0,0 +1,170 @@ +# take input from the user +num = as.integer(readline(prompt="Enter a number: ")) +factorial = 1 +# check is the number is negative, positive or zero +if(num < 0) { +print("Sorry, factorial does not exist for negative numbers") +} else if(num == 0) { +print("The factorial of 0 is 1") +} else { +for(i in 1:num) { +factorial = factorial * i +} +print(paste("The factorial of", num ,"is",factorial)) +} + +x <- 0 +if (x < 0) { +print("Negative number") +} else if (x > 0) { +print("Positive number") +} else +print("Zero") + +x <- 1:5 +for (val in x) { +if (val == 3){ +next +} +print(val) +} + +x <- 1 +repeat { +print(x) +x = x+1 +if (x == 6){ +break +} +} + +`%divisible%` <- function(x,y) +{ +if (x%%y ==0) return (TRUE) +else return (FALSE) +} + +switch("length", "color" = "red", "shape" = "square", "length" = 5) +[1] 5 + +recursive.factorial <- function(x) { +if (x == 0) return (1) +else return (x * recursive.factorial(x-1)) +} + +pow <- function(x, y) { +# function to print x raised to the power y +result <- x^y +print(paste(x,"raised to the power", y, "is", result)) +} + +A <- read.table("x.data", sep=",", + col.names=c("year", "my1", "my2")) +nrow(A) # Count the rows in A + +summary(A$year)  + +A$newcol <- A$my1 + A$my2 # Makes a new +newvar <- A$my1 - A$my2 # Makes a  +A$my1 <- NULL # Removes  +str(A) +summary(A) +library(Hmisc)  +contents(A) +describe(A) + +set.seed(102) # This yields a good illustration. +x <- sample(1:3, 15, replace=TRUE) +education <- factor(x, labels=c("None", "School", "College")) +x <- sample(1:2, 15, replace=TRUE) +gender <- factor(x, labels=c("Male", "Female")) +age <- runif(15, min=20,max=60) + +D <- data.frame(age, gender, education) +rm(x,age,gender,education) +print(D) + +# Table about education +table(D$education) + +# Table about education and gender -- +table(D$gender, D$education) +# Joint distribution of education and gender -- +table(D$gender, D$education)/nrow(D) + +# Add in the marginal distributions also +addmargins(table(D$gender, D$education)) +addmargins(table(D$gender, D$education))/nrow(D) + +# Generate a good LaTeX table out of it -- +library(xtable) +xtable(addmargins(table(D$gender, D$education))/nrow(D), + digits=c(0,2,2,2,2))  + +by(D$age, D$gender, mean) +by(D$age, D$gender, sd) +by(D$age, D$gender, summary) + +a <- matrix(by(D$age, list(D$gender, D$education), mean), nrow=2) +rownames(a) <- levels(D$gender) +colnames(a) <- levels(D$education) +print(a) +print(xtable(a)) + +dat <- read.csv(file = "files/dataset-2013-01.csv", header = TRUE) +interim_object <- data.frame(rep(1:100, 10), + rep(101:200, 10), + rep(201:300, 10)) +object.size(interim_object)  +rm("interim_object")  +ls()  +rm(list = ls()) + +vector1 <- c(5,9,3) +vector2 <- c(10,11,12,13,14,15) +array1 <- array(c(vector1,vector2),dim = c(3,3,2)) +vector3 <- c(9,1,0) +vector4 <- c(6,0,11,3,14,1,2,6,9) +array2 <- array(c(vector1,vector2),dim = c(3,3,2)) +matrix1 <- array1[,,2] +matrix2 <- array2[,,2] +result <- matrix1+matrix2 +print(result) + +column.names <- c("COL1","COL2","COL3") +row.names <- c("ROW1","ROW2","ROW3") +matrix.names <- c("Matrix1","Matrix2") +result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names, + column.names, matrix.names)) +print(result[3,,2]) +print(result[1,3,1]) +print(result[,,2]) + +# Load the package required to read JSON files. +library("rjson") +result <- fromJSON(file = "input.json") +print(result) + +x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131) +y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48) +relation <- lm(y~x) +print(relation) + +relation <- lm(y~x) +png(file = "linearregression.png") +plot(y,x,col = "blue",main = "Height & Weight Regression", +abline(lm(x~y)),cex = 1.3,pch = 16,xlab = "Weight in Kg",ylab = "Height in cm") +dev.off() + +data <- c("East","West","East","North","North","East","West","West","West","East","North") +print(data) +print(is.factor(data)) +factor_data <- factor(data) +print(factor_data) +print(is.factor(factor_data)) + +v <- c(7,12,28,3,41) + +# Give the chart file a name. +png(file = "line_chart_label_colored.jpg") +plot(v,type = "o", col = "red", xlab = "Month", ylab = "Rain fall", main = "Rain fall chart") diff --git a/tests/syntax-tests/source/R/test.r b/tests/syntax-tests/source/R/test.r new file mode 100644 index 00000000..2d67992b --- /dev/null +++ b/tests/syntax-tests/source/R/test.r @@ -0,0 +1,170 @@ +# take input from the user +num = as.integer(readline(prompt="Enter a number: ")) +factorial = 1 +# check is the number is negative, positive or zero +if(num < 0) { +print("Sorry, factorial does not exist for negative numbers") +} else if(num == 0) { +print("The factorial of 0 is 1") +} else { +for(i in 1:num) { +factorial = factorial * i +} +print(paste("The factorial of", num ,"is",factorial)) +} + +x <- 0 +if (x < 0) { +print("Negative number") +} else if (x > 0) { +print("Positive number") +} else +print("Zero") + +x <- 1:5 +for (val in x) { +if (val == 3){ +next +} +print(val) +} + +x <- 1 +repeat { +print(x) +x = x+1 +if (x == 6){ +break +} +} + +`%divisible%` <- function(x,y) +{ +if (x%%y ==0) return (TRUE) +else return (FALSE) +} + +switch("length", "color" = "red", "shape" = "square", "length" = 5) +[1] 5 + +recursive.factorial <- function(x) { +if (x == 0) return (1) +else return (x * recursive.factorial(x-1)) +} + +pow <- function(x, y) { +# function to print x raised to the power y +result <- x^y +print(paste(x,"raised to the power", y, "is", result)) +} + +A <- read.table("x.data", sep=",", + col.names=c("year", "my1", "my2")) +nrow(A) # Count the rows in A + +summary(A$year) + +A$newcol <- A$my1 + A$my2 # Makes a new +newvar <- A$my1 - A$my2 # Makes a +A$my1 <- NULL # Removes +str(A) +summary(A) +library(Hmisc) +contents(A) +describe(A) + +set.seed(102) # This yields a good illustration. +x <- sample(1:3, 15, replace=TRUE) +education <- factor(x, labels=c("None", "School", "College")) +x <- sample(1:2, 15, replace=TRUE) +gender <- factor(x, labels=c("Male", "Female")) +age <- runif(15, min=20,max=60) + +D <- data.frame(age, gender, education) +rm(x,age,gender,education) +print(D) + +# Table about education +table(D$education) + +# Table about education and gender -- +table(D$gender, D$education) +# Joint distribution of education and gender -- +table(D$gender, D$education)/nrow(D) + +# Add in the marginal distributions also +addmargins(table(D$gender, D$education)) +addmargins(table(D$gender, D$education))/nrow(D) + +# Generate a good LaTeX table out of it -- +library(xtable) +xtable(addmargins(table(D$gender, D$education))/nrow(D), + digits=c(0,2,2,2,2)) + +by(D$age, D$gender, mean) +by(D$age, D$gender, sd) +by(D$age, D$gender, summary) + +a <- matrix(by(D$age, list(D$gender, D$education), mean), nrow=2) +rownames(a) <- levels(D$gender) +colnames(a) <- levels(D$education) +print(a) +print(xtable(a)) + +dat <- read.csv(file = "files/dataset-2013-01.csv", header = TRUE) +interim_object <- data.frame(rep(1:100, 10), + rep(101:200, 10), + rep(201:300, 10)) +object.size(interim_object) +rm("interim_object") +ls() +rm(list = ls()) + +vector1 <- c(5,9,3) +vector2 <- c(10,11,12,13,14,15) +array1 <- array(c(vector1,vector2),dim = c(3,3,2)) +vector3 <- c(9,1,0) +vector4 <- c(6,0,11,3,14,1,2,6,9) +array2 <- array(c(vector1,vector2),dim = c(3,3,2)) +matrix1 <- array1[,,2] +matrix2 <- array2[,,2] +result <- matrix1+matrix2 +print(result) + +column.names <- c("COL1","COL2","COL3") +row.names <- c("ROW1","ROW2","ROW3") +matrix.names <- c("Matrix1","Matrix2") +result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names, + column.names, matrix.names)) +print(result[3,,2]) +print(result[1,3,1]) +print(result[,,2]) + +# Load the package required to read JSON files. +library("rjson") +result <- fromJSON(file = "input.json") +print(result) + +x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131) +y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48) +relation <- lm(y~x) +print(relation) + +relation <- lm(y~x) +png(file = "linearregression.png") +plot(y,x,col = "blue",main = "Height & Weight Regression", +abline(lm(x~y)),cex = 1.3,pch = 16,xlab = "Weight in Kg",ylab = "Height in cm") +dev.off() + +data <- c("East","West","East","North","North","East","West","West","West","East","North") +print(data) +print(is.factor(data)) +factor_data <- factor(data) +print(factor_data) +print(is.factor(factor_data)) + +v <- c(7,12,28,3,41) + +# Give the chart file a name. +png(file = "line_chart_label_colored.jpg") +plot(v,type = "o", col = "red", xlab = "Month", ylab = "Rain fall", main = "Rain fall chart")