This module explores the package data.table in R.
Project
Load the Data
Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
library(ggplot2)
temp <- fread("E:/Summer 2026/data/Temperature.csv")
str(temp)
Classes 'data.table' and 'data.frame': 8528 obs. of 16 variables:
$ Sample : chr "DANT.19900110" "DANT.19900206" "DANT.19900308" "DANT.19900404" ...
$ Date : int 19900110 19900206 19900308 19900404 19900509 19900620 19900718 19900815 19900919 19901017 ...
$ DateNr : chr "10/1/90" "6/2/90" "8/3/90" "4/4/90" ...
$ dDay1 : int 7 34 64 91 126 168 196 224 259 287 ...
$ dDay2 : int 9 36 66 93 128 170 198 226 261 289 ...
$ dDay3 : int 9 36 66 93 128 170 198 226 261 289 ...
$ Station : chr "DANT" "DANT" "DANT" "DANT" ...
$ Area : chr "WZ" "WZ" "WZ" "WZ" ...
$ 31UE_ED50 : num 681380 681380 681380 681380 681380 ...
$ 31UN_ED50 : num 5920571 5920571 5920571 5920571 5920571 ...
$ Year : int 1990 1990 1990 1990 1990 1990 1990 1990 1990 1990 ...
$ Month : int 1 2 3 4 5 6 7 8 9 10 ...
$ Season : chr "winter" "winter" "spring" "spring" ...
$ Salinity : num 29.2 27.4 25 28.8 33.3 ...
$ Temperature: num 4 6 7.3 8.2 17.4 18.1 17 21 15.1 13.8 ...
$ CHLFa : num 1.3 NA 21.1 25 10.2 6.2 7.9 7.85 13 11.8 ...
- attr(*, ".internal.selfref")=<pointer: 0x000001cfd914cf30>
Select Area, Season, and Temperautre Columns
AST <- temp[, .(Area, Season, Temperature)]
AST
Area Season Temperature
<char> <char> <num>
1: WZ winter 4.00
2: WZ winter 6.00
3: WZ spring 7.30
4: WZ spring 8.20
5: WZ spring 17.40
---
8524: WZ autumn 15.47
8525: WZ autumn 13.45
8526: WZ autumn 12.09
8527: WZ autumn 9.03
8528: WZ winter 5.13
Select Area, and Temperautre Columns for Winter Observations
WAT <- temp[Season == "winter", .(Area, Season, Temperature)]
WAT
Area Season Temperature
<char> <char> <num>
1: WZ winter 4.00
2: WZ winter 6.00
3: WZ winter 4.20
4: WZ winter -0.30
5: WZ winter 3.90
---
1702: WZ winter 4.40
1703: WZ winter 4.72
1704: WZ winter 3.57
1705: WZ winter 1.31
1706: WZ winter 5.13
Find Total Observations in Winter
temp[Season == "winter", .N]
Find Mean Temperature and Salinity in Winter
mTeSl <- temp[Season == "winter",
.(m_Temp = mean(Temperature, na.rm = TRUE), m_Sal = mean(Salinity, na.rm = TRUE)) ]
mTeSl
m_Temp m_Sal
<num> <num>
1: 5.57162 29.15756
Find Total Observations per Station in Winter
stObWn <- temp[Season == "winter", .N, by = Station]
stObWn
Station N
<char> <int>
1: DANT 50
2: DREI 52
3: G6 101
4: GROO 50
5: HAMM 55
6: HANS 56
7: HUIB 50
8: LODS 54
9: MARS 49
10: N02 115
11: N10 131
12: N20 50
13: N70 50
14: R03 32
15: SOEL 50
16: T004 97
17: T010 45
18: T100 45
19: T135 46
20: T175 45
21: T235 45
22: VLIS 84
23: W02 99
24: W20 47
25: W70 47
26: WISS 55
27: ZIJP 54
28: ZUID 52
Station N
<char> <int>
Find Total Observations per Station Per Season
stObSe <- temp[, .N, by = .(Station, Season)]
stObSe
Station Season N
<char> <char> <int>
1: DANT winter 50
2: DANT spring 89
3: DANT summer 89
4: DANT autumn 72
5: DREI winter 52
---
114: ZIJP autumn 61
115: ZUID winter 52
116: ZUID spring 89
117: ZUID summer 89
118: ZUID autumn 73
Estimate Total Average Temperatures by Month
avTemp <- temp[, .(m_Temp = mean(Temperature, na.rm = TRUE)), by = Month]
avTemp
Month m_Temp
<int> <num>
1: 1 5.174210
2: 2 4.737400
3: 3 6.125961
4: 4 8.702035
5: 5 12.293479
6: 6 15.659933
7: 7 18.077343
8: 8 19.388355
9: 9 16.995974
10: 10 13.619670
11: 11 9.848891
12: 12 6.746339
Estimate Total Average Temperatures by Month by Area
avTempA <- temp[, .(m_Temp = mean(Temperature, na.rm = TRUE)), by = .(Month, Area)]
avTempA
Month Area m_Temp
<int> <char> <num>
1: 1 WZ 3.377826
2: 2 WZ 3.925800
3: 3 WZ 5.818481
4: 4 WZ 9.270805
5: 5 WZ 13.398191
---
116: 1 NC 6.789808
117: 2 NC 5.682581
118: 3 NC 5.837500
119: 11 NC 10.978269
120: 12 NC 8.716957
##Plot Previous Quesiton
ggplot(avTempA, aes(x = Month, y = m_Temp, color = Area)) +
geom_line() +
labs(y = "Mean Temperature")
DISCLAIMER:
ChatGPT was used during the process of writing the code for the purpose of debugging and fixing errors in the code.