I. Classes are types of data in R, types of basic variables in R, such as numeric, integer, character, logical and complex. And one object can have more than one classes. For example, “1” is an object, and its class is integer. “Hello” is also an object, and its class is character.
Data Structure are some ways to organize and store the data. Common data structures in R include vectors, matrices, arrays, lists, data frames, and factors. For example, a vector is a one-dimensional array that can hold elements of the same data type, like a sequence of numbers or character strings.

Vec <- c(1, 2, 3)
print(Vec)
## [1] 1 2 3


I pick CO2 from base R

data()
mydata <- CO2
class(mydata)
## [1] "nfnGroupedData" "nfGroupedData"  "groupedData"    "data.frame"
typeof(mydata)
## [1] "list"

The function class() shows the dataset’s type is data.frame, and the function typeof() shows the dataset’s type is list. class() shows the class of an object while typeof() shows the low level data type.
II.

my_vector <- c(2, 4, 6, 8, 10, 12, 14)
R_StandardDeviation_InBuilt <- sd(my_vector)
print(R_StandardDeviation_InBuilt)
## [1] 4.320494
mean_vector <- mean(my_vector)
squared_diff <- (my_vector - mean_vector)^2
variance <- sum(squared_diff) / (length(my_vector) - 1)
R_StandardDeviation_Hand <- sqrt(variance)
print(R_StandardDeviation_Hand)
## [1] 4.320494
test1 <- c(10, 20, 30)
test2 <- c(20, 30, 40)
sdtest1 <- sd(test1)
sdtest2 <- sd(test2)
cat(sdtest1, sdtest2)
## 10 10

I speculate it should be standard deviation

test1 <- c(3, 5, 6, 7, 8, 12, 14, 23, 15, 32)
test2 <- c(5, 18, 23, 54, 108)
mean1 <- mean(test1)
mean2 <- mean(test2)
cat(mean1, mean2)
## 12.5 41.6

I speculate it should be mean value

# function that change Celsius or Fahrenheit to the other one
my_function <- function(x, y){
# input number in x, and input C in y representing C to F, input F in y representing F to C
  if (y == "C" | y == "c"){
    x = 32 + 1.8*x
    result <- list(x, "F")
  }else if(y == "F"| y == "f"){
    x = 5*(x - 32)/9
    result <- list(x, "C")
  }else{
    result <- "ERROR"
  }
  return(result)
}

Test the function

print(my_function(77, "F"))
## [[1]]
## [1] 25
## 
## [[2]]
## [1] "C"

IV.I still using CO2 as the dataset. CO2 is a cross-sectional dataset.

print(mydata)
##    Plant        Type  Treatment conc uptake
## 1    Qn1      Quebec nonchilled   95   16.0
## 2    Qn1      Quebec nonchilled  175   30.4
## 3    Qn1      Quebec nonchilled  250   34.8
## 4    Qn1      Quebec nonchilled  350   37.2
## 5    Qn1      Quebec nonchilled  500   35.3
## 6    Qn1      Quebec nonchilled  675   39.2
## 7    Qn1      Quebec nonchilled 1000   39.7
## 8    Qn2      Quebec nonchilled   95   13.6
## 9    Qn2      Quebec nonchilled  175   27.3
## 10   Qn2      Quebec nonchilled  250   37.1
## 11   Qn2      Quebec nonchilled  350   41.8
## 12   Qn2      Quebec nonchilled  500   40.6
## 13   Qn2      Quebec nonchilled  675   41.4
## 14   Qn2      Quebec nonchilled 1000   44.3
## 15   Qn3      Quebec nonchilled   95   16.2
## 16   Qn3      Quebec nonchilled  175   32.4
## 17   Qn3      Quebec nonchilled  250   40.3
## 18   Qn3      Quebec nonchilled  350   42.1
## 19   Qn3      Quebec nonchilled  500   42.9
## 20   Qn3      Quebec nonchilled  675   43.9
## 21   Qn3      Quebec nonchilled 1000   45.5
## 22   Qc1      Quebec    chilled   95   14.2
## 23   Qc1      Quebec    chilled  175   24.1
## 24   Qc1      Quebec    chilled  250   30.3
## 25   Qc1      Quebec    chilled  350   34.6
## 26   Qc1      Quebec    chilled  500   32.5
## 27   Qc1      Quebec    chilled  675   35.4
## 28   Qc1      Quebec    chilled 1000   38.7
## 29   Qc2      Quebec    chilled   95    9.3
## 30   Qc2      Quebec    chilled  175   27.3
## 31   Qc2      Quebec    chilled  250   35.0
## 32   Qc2      Quebec    chilled  350   38.8
## 33   Qc2      Quebec    chilled  500   38.6
## 34   Qc2      Quebec    chilled  675   37.5
## 35   Qc2      Quebec    chilled 1000   42.4
## 36   Qc3      Quebec    chilled   95   15.1
## 37   Qc3      Quebec    chilled  175   21.0
## 38   Qc3      Quebec    chilled  250   38.1
## 39   Qc3      Quebec    chilled  350   34.0
## 40   Qc3      Quebec    chilled  500   38.9
## 41   Qc3      Quebec    chilled  675   39.6
## 42   Qc3      Quebec    chilled 1000   41.4
## 43   Mn1 Mississippi nonchilled   95   10.6
## 44   Mn1 Mississippi nonchilled  175   19.2
## 45   Mn1 Mississippi nonchilled  250   26.2
## 46   Mn1 Mississippi nonchilled  350   30.0
## 47   Mn1 Mississippi nonchilled  500   30.9
## 48   Mn1 Mississippi nonchilled  675   32.4
## 49   Mn1 Mississippi nonchilled 1000   35.5
## 50   Mn2 Mississippi nonchilled   95   12.0
## 51   Mn2 Mississippi nonchilled  175   22.0
## 52   Mn2 Mississippi nonchilled  250   30.6
## 53   Mn2 Mississippi nonchilled  350   31.8
## 54   Mn2 Mississippi nonchilled  500   32.4
## 55   Mn2 Mississippi nonchilled  675   31.1
## 56   Mn2 Mississippi nonchilled 1000   31.5
## 57   Mn3 Mississippi nonchilled   95   11.3
## 58   Mn3 Mississippi nonchilled  175   19.4
## 59   Mn3 Mississippi nonchilled  250   25.8
## 60   Mn3 Mississippi nonchilled  350   27.9
## 61   Mn3 Mississippi nonchilled  500   28.5
## 62   Mn3 Mississippi nonchilled  675   28.1
## 63   Mn3 Mississippi nonchilled 1000   27.8
## 64   Mc1 Mississippi    chilled   95   10.5
## 65   Mc1 Mississippi    chilled  175   14.9
## 66   Mc1 Mississippi    chilled  250   18.1
## 67   Mc1 Mississippi    chilled  350   18.9
## 68   Mc1 Mississippi    chilled  500   19.5
## 69   Mc1 Mississippi    chilled  675   22.2
## 70   Mc1 Mississippi    chilled 1000   21.9
## 71   Mc2 Mississippi    chilled   95    7.7
## 72   Mc2 Mississippi    chilled  175   11.4
## 73   Mc2 Mississippi    chilled  250   12.3
## 74   Mc2 Mississippi    chilled  350   13.0
## 75   Mc2 Mississippi    chilled  500   12.5
## 76   Mc2 Mississippi    chilled  675   13.7
## 77   Mc2 Mississippi    chilled 1000   14.4
## 78   Mc3 Mississippi    chilled   95   10.6
## 79   Mc3 Mississippi    chilled  175   18.0
## 80   Mc3 Mississippi    chilled  250   17.9
## 81   Mc3 Mississippi    chilled  350   17.9
## 82   Mc3 Mississippi    chilled  500   17.9
## 83   Mc3 Mississippi    chilled  675   18.9
## 84   Mc3 Mississippi    chilled 1000   19.9
library(ggplot2)
library(e1071)
ggplot(mydata, aes(x = conc)) + geom_density() +  geom_density(fill="red") + labs(title = "Density Plot", x = "conc", y = "Density")

skew <- skewness(mydata$conc)
print(skew)
## [1] 0.7201458

As we can see, this is a right skewed distribution. The skewness value is between 0.5 and 1, so it’s Morderate Skewness.