R Programming Basics

R Programming Basics

R Programming Basics

Published on September 25, 2025By EduResHub Team

ভূমিকা

এই লেকচারে আমরা শিখব R Programming Basics
ভাষা হবে বাংলায়, তবে Technical terms, function names, code সব থাকবে English-এ
উদাহরণগুলো নেয়া হয়েছে Agricultural Entomology এর কাল্পনিক গবেষণা ডেটা থেকে।


১. Syntax এবং Comment

  • Syntax হলো কোড লেখার নিয়ম।
  • Comment লেখার জন্য # ব্যবহার করা হয়।
# এটি একটি comment (এটি কোড চালাবে না)
x <- 10  # এখানে x variable এ 10 assign করা হলো
y <- 5   # এখানে y variable এ 5 assign করা হলো
x + y    # Output হবে 15
## [1] 15

২. Variable

Variable হলো data সংরক্ষণের নাম।
R-এ assign করার জন্য <- অথবা = ব্যবহার করা যায়।

# Example: Rice field-এ BPH (Brown Planthopper) count
BPH_count <- 120
Yield_kg <- 4.5

BPH_count
## [1] 120
Yield_kg
## [1] 4.5

৩. Data Types

  • Numeric → সংখ্যা
  • Character → লেখা
  • Logical → TRUE/FALSE
num <- 50          # Numeric
txt <- "Insect"    # Character
flag <- TRUE       # Logical

৪. Vector

  • Vector হলো একধরনের একমাত্রিক data structure।
  • Pest count বা yield list রাখার জন্য vector ব্যবহার করা হয়।
# Example: এক সপ্তাহে Rice field-এ BPH count
BPH_week <- c(50, 60, 72, 80, 95, 110, 120)

BPH_week
## [1]  50  60  72  80  95 110 120
mean(BPH_week)   # গড় বের করা
## [1] 83.85714
max(BPH_week)    # সর্বোচ্চ সংখ্যা
## [1] 120

৫. Function

  • Function হলো কোডের নির্দিষ্ট কাজ করার block।
  • Built-in function যেমন mean()sum(), আবার আমরা নিজের functionও বানাতে পারি।
# Built-in function
Yield <- c(4.8, 4.5, 4.2, 3.9, 3.5)
mean(Yield)   # গড় Yield
## [1] 4.18
# Custom function
YieldLoss <- function(BPH) {
  return(0.05 * BPH)   # Yield loss (hypothetical model)
}

YieldLoss(100)  # যদি BPH = 100 হয়
## [1] 5

৬. Matrix

  • Matrix হলো দুই-মাত্রিক data structure।
  • উদাহরণস্বরূপ pest density data বিভিন্ন field থেকে সংগ্রহ করা।
# Matrix of insect counts (Rows = Field, Columns = Pest species)
insect_matrix <- matrix(
  c(50, 40, 60,   # Field 1: BPH, WBPH, GLH
    70, 55, 65,   # Field 2
    90, 75, 85),  # Field 3
  nrow = 3,
  byrow = TRUE
)

colnames(insect_matrix) <- c("BPH", "WBPH", "GLH")
rownames(insect_matrix) <- c("Field1", "Field2", "Field3")

insect_matrix
##        BPH WBPH GLH
## Field1  50   40  60
## Field2  70   55  65
## Field3  90   75  85

৭. Data Frame

  • Data frame হলো সবচেয়ে প্রচলিত data structure, যেখানে ভিন্ন ভিন্ন ধরনের (numeric, character) variable রাখা যায়।
  • Agricultural experiments এর dataset সাধারণত data frame আকারে সংরক্ষিত হয়।
# Example Data Frame
entomology_data <- data.frame(
  Field = c("F1", "F2", "F3", "F4"),
  BPH = c(50, 70, 90, 120),
  WBPH = c(40, 60, 80, 100),
  Yield = c(5.0, 4.6, 4.2, 3.8)
)

entomology_data
##   Field BPH WBPH Yield
## 1    F1  50   40   5.0
## 2    F2  70   60   4.6
## 3    F3  90   80   4.2
## 4    F4 120  100   3.8

৮. Data Frame Accessing

entomology_data$BPH         # BPH column
## [1]  50  70  90 120
entomology_data[ , "Yield"] # Yield column
## [1] 5.0 4.6 4.2 3.8
entomology_data[1, ]        # প্রথম row
##   Field BPH WBPH Yield
## 1    F1  50   40     5
entomology_data[ ,2:3]      # Column 2 থেকে 3
##   BPH WBPH
## 1  50   40
## 2  70   60
## 3  90   80
## 4 120  100

৯. Summary এবং Visualization

summary(entomology_data)   # summary statistics
##     Field                BPH             WBPH         Yield    
##  Length:4           Min.   : 50.0   Min.   : 40   Min.   :3.8  
##  Class :character   1st Qu.: 65.0   1st Qu.: 55   1st Qu.:4.1  
##  Mode  :character   Median : 80.0   Median : 70   Median :4.4  
##                     Mean   : 82.5   Mean   : 70   Mean   :4.4  
##                     3rd Qu.: 97.5   3rd Qu.: 85   3rd Qu.:4.7  
##                     Max.   :120.0   Max.   :100   Max.   :5.0
# Simple Plot
plot(entomology_data$BPH, entomology_data$Yield,
     main="BPH vs Yield",
     xlab="BPH Count", ylab="Yield (kg/plot)",
     pch=19, col="blue")


উপসংহার

  • আমরা শিখলাম R এর syntax, comment, variable, data types, vector, function, matrix, data frame
  • Agricultural Entomology গবেষণায় pest population ও yield data সংগঠিত ও বিশ্লেষণ করতে R Programming অত্যন্ত উপযোগী।