Introducing the apply function, which is useful for sequential processing of rows or columns of data frames.
Execution commands are verified with R version 4.2.3.
Example
See the command and package help for details.
###Exsample Data#####
TestData <- data.frame(Group = rep(LETTERS[1:4], time = 2),
Data_1 = rep(1:4, time = 2),
Data_2 = rep(5:8, time = 2))
#Check
TestData
# Group Data_1 Data_2
# 1 A 1 5
# 2 B 2 6
# 3 C 3 7
# 4 D 4 8
# 5 A 1 5
# 6 B 2 6
# 7 C 3 7
# 8 D 4 8
#######
#apply function: get data as vector, array or list
#processing direction:MARGIN option; 1:row direction, 2:column direction
#processing content:FUN option
###sum#####
apply(X = TestData[2:3], MARGIN = 1, FUN = sum)
# [1] 6 8 10 12 6 8 10 12
apply(X = TestData[2:3], MARGIN = 2, FUN = sum)
Data_1 Data_2
# 20 52
###sort#####
apply(X = TestData[2:3], MARGIN = 2,
FUN = sort, decreasing = TRUE)
# Data_1 Data_2
# [1,] 4 8
# [2,] 4 8
# [3,] 3 7
# [4,] 3 7
# [5,] 2 6
# [6,] 2 6
# [7,] 1 5
# [8,] 1 5
###Total by group#####
apply(X = TestData[2:3], MARGIN = 2,
FUN = function(x){tapply(x, TestData$Group, sum,
na.rm = TRUE)})
# Data_1 Data_2
# A 2 10
# B 4 12
# C 6 14
# D 8 16
I hope this makes your analysis a little easier !!