Contoh 1
library(tm)
## Warning: package 'tm' was built under R version 4.1.3
## Loading required package: NLP
library(stringr)
## Warning: package 'stringr' was built under R version 4.1.3
# Contoh data teks
data_teks <- c(
"Saya suka belajar matematika karena saya merasa pintar ketika bisa menyelesaikan soal-soalnya.",
"Terkadang matematika membuat saya bingung dan frustasi.",
"Guru kami sangat membantu dalam menjelaskan materi matematika.",
"Pembelajaran matematika online selama pandemi membuat saya merasa kesulitan karena kurangnya interaksi langsung."
)
corpus <- Corpus(VectorSource(data_teks))
# Membersihkan teks
corpus <- tm_map(corpus, content_transformer(tolower)) # Mengonversi ke huruf kecil
## Warning in tm_map.SimpleCorpus(corpus, content_transformer(tolower)):
## transformation drops documents
corpus <- tm_map(corpus, removePunctuation) # Menghapus tanda baca
## Warning in tm_map.SimpleCorpus(corpus, removePunctuation): transformation drops
## documents
corpus <- tm_map(corpus, removeNumbers) # Menghapus angka
## Warning in tm_map.SimpleCorpus(corpus, removeNumbers): transformation drops
## documents
corpus <- tm_map(corpus, removeWords, stopwords("english"))
## Warning in tm_map.SimpleCorpus(corpus, removeWords, stopwords("english")):
## transformation drops documents
# Menghitung frekuensi kata
term_freq <- DocumentTermMatrix(corpus)
# Mengonversi ke data frame
term_freq_df <- as.data.frame(as.matrix(term_freq))
colnames(term_freq_df) <- make.names(colnames(term_freq_df))
print(term_freq_df)
## belajar bisa karena ketika matematika menyelesaikan merasa pintar saya
## 1 1 1 1 1 1 1 1 1 2
## 2 0 0 0 0 1 0 0 0 1
## 3 0 0 0 0 1 0 0 0 0
## 4 0 0 1 0 1 0 1 0 1
## soalsoalnya suka bingung dan frustasi membuat terkadang dalam guru kami
## 1 1 1 0 0 0 0 0 0 0 0
## 2 0 0 1 1 1 1 1 0 0 0
## 3 0 0 0 0 0 0 0 1 1 1
## 4 0 0 0 0 0 1 0 0 0 0
## materi membantu menjelaskan sangat interaksi kesulitan kurangnya langsung
## 1 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0
## 3 1 1 1 1 0 0 0 0
## 4 0 0 0 0 1 1 1 1
## online pandemi pembelajaran selama
## 1 0 0 0 0
## 2 0 0 0 0
## 3 0 0 0 0
## 4 1 1 1 1
library(tm)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.3
##
## Attaching package: 'ggplot2'
## The following object is masked from 'package:NLP':
##
## annotate
# Data teks contoh
data_teks <- c(
"Saya suka belajar matematika karena saya merasa pintar ketika bisa menyelesaikan soal-soalnya.",
"Terkadang matematika membuat saya bingung dan frustasi.",
"Guru kami sangat membantu dalam menjelaskan materi matematika.",
"Pembelajaran matematika online selama pandemi membuat saya merasa kesulitan karena kurangnya interaksi langsung."
)
corpus <- Corpus(VectorSource(data_teks))
# Membersihkan teks
corpus <- tm_map(corpus, content_transformer(tolower))
## Warning in tm_map.SimpleCorpus(corpus, content_transformer(tolower)):
## transformation drops documents
corpus <- tm_map(corpus, removePunctuation)
## Warning in tm_map.SimpleCorpus(corpus, removePunctuation): transformation drops
## documents
corpus <- tm_map(corpus, removeNumbers)
## Warning in tm_map.SimpleCorpus(corpus, removeNumbers): transformation drops
## documents
corpus <- tm_map(corpus, removeWords, stopwords("english"))
## Warning in tm_map.SimpleCorpus(corpus, removeWords, stopwords("english")):
## transformation drops documents
# Membuat term document matrix
tdm <- TermDocumentMatrix(corpus)
# Menghitung frekuensi kata-kata
term_freq <- rowSums(as.matrix(tdm))
# Membuat data frame frekuensi kata-kata
term_freq_df <- data.frame(Kata = names(term_freq), Frekuensi = term_freq)
# Urutkan data berdasarkan frekuensi
term_freq_df <- term_freq_df[order(term_freq_df$Frekuensi, decreasing = TRUE), ]
# Membuat grafik batang dengan ggplot2
ggplot(term_freq_df, aes(x = reorder(Kata, -Frekuensi), y = Frekuensi, fill = Kata, label = Frekuensi)) +
geom_bar(stat = "identity") +
geom_text(size = 3, position = position_stack(vjust = 0.5), color = "black") +
labs(x = "Kata", y = "Frekuensi") +
theme_minimal() +
theme(axis.text.x = element_blank()) +
ggtitle("Frekuensi Kata dalam Teks")

Contoh 2
library(MASS)
## Warning: package 'MASS' was built under R version 4.1.3
painters
## Composition Drawing Colour Expression School
## Da Udine 10 8 16 3 A
## Da Vinci 15 16 4 14 A
## Del Piombo 8 13 16 7 A
## Del Sarto 12 16 9 8 A
## Fr. Penni 0 15 8 0 A
## Guilio Romano 15 16 4 14 A
## Michelangelo 8 17 4 8 A
## Perino del Vaga 15 16 7 6 A
## Perugino 4 12 10 4 A
## Raphael 17 18 12 18 A
## F. Zucarro 10 13 8 8 B
## Fr. Salviata 13 15 8 8 B
## Parmigiano 10 15 6 6 B
## Primaticcio 15 14 7 10 B
## T. Zucarro 13 14 10 9 B
## Volterra 12 15 5 8 B
## Barocci 14 15 6 10 C
## Cortona 16 14 12 6 C
## Josepin 10 10 6 2 C
## L. Jordaens 13 12 9 6 C
## Testa 11 15 0 6 C
## Vanius 15 15 12 13 C
## Bassano 6 8 17 0 D
## Bellini 4 6 14 0 D
## Giorgione 8 9 18 4 D
## Murillo 6 8 15 4 D
## Palma Giovane 12 9 14 6 D
## Palma Vecchio 5 6 16 0 D
## Pordenone 8 14 17 5 D
## Tintoretto 15 14 16 4 D
## Titian 12 15 18 6 D
## Veronese 15 10 16 3 D
## Albani 14 14 10 6 E
## Caravaggio 6 6 16 0 E
## Corregio 13 13 15 12 E
## Domenichino 15 17 9 17 E
## Guercino 18 10 10 4 E
## Lanfranco 14 13 10 5 E
## The Carraci 15 17 13 13 E
## Durer 8 10 10 8 F
## Holbein 9 10 16 13 F
## Pourbus 4 15 6 6 F
## Van Leyden 8 6 6 4 F
## Diepenbeck 11 10 14 6 G
## J. Jordaens 10 8 16 6 G
## Otho Venius 13 14 10 10 G
## Rembrandt 15 6 17 12 G
## Rubens 18 13 17 17 G
## Teniers 15 12 13 6 G
## Van Dyck 15 10 17 13 G
## Bourdon 10 8 8 4 H
## Le Brun 16 16 8 16 H
## Le Suer 15 15 4 15 H
## Poussin 15 17 6 15 H
school = painters$School
school
## [1] A A A A A A A A A A B B B B B B C C C C C C D D D D D D D D D D E E E E E E
## [39] E F F F F G G G G G G G H H H H
## Levels: A B C D E F G H
school.frek = table(school)
school.frek
## school
## A B C D E F G H
## 10 6 6 10 7 4 7 4
barplot(school.frek,
col = c("red", "yellow", "green", "blue",
"orange", "purple", "lightblue", "pink"))

pie(school.frek)

tapply(painters$Composition, painters$School,
mean)
## A B C D E F G H
## 10.40000 12.16667 13.16667 9.10000 13.57143 7.25000 13.85714 14.00000