Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Thống kê tính toán _ C03040

CHƯƠNG 1: NHẬP, XUẤT VÀ BIÊN TẬP DỮ LIỆU


1.1 Giới thiệu:
Tên package Chức năng
Rmeta Dùng cho phân tích tổng hợp
metafor (meta-analisis)
survival Phân tích theo mô hình Cox
Zelig Dùng cho các phân tích thống kê trong lĩnh vực xã hội học
ggplot2 Dùng cho vẽ biểu đồ
cluster Phân tích cụm
trellis Vẽ đồ thị và làm cho đồ thị đẹp hơn
lattice
foreign Nhập dữ liệu từ các phần mềm khác như SPSS, Stata, SAS,….
Để kiểm tra những gói lệnh nào đã có trong máy, ta dùng lệnh sau:
 .packages(TRUE)
Gọi các gói lệnh đã cài đặt ra để sử dụng:
 search( )
Muốn bỏ những gói lệnh đã gọi trước đó thì ta dùng lệnh:
 detach( ) hoặc unlibrary( )
Cách 1:
 detach(name = "package:graphics")
Cach 2:
 install.packages("lsr")
 library(lsr)
 unlibrary(graphics)
Cài packages:
 install.packages(c("DescTools", "rms", "tables", "foreign", "gmodels", "ggplot2",
"car", "survival", "boot", "cluster", "psych", "binom", "BMA"))
 library( foreign )
Liệt kê các biến đang tồn tại trong phiên làm việc
Ta có thể dùng hàm: objects(), hàm ls( ) hoặc hàm who( ) (thuộc package lsr).
Tạo ra 4 biến như sau:
 x <- seq(1,10,2)
 y = seq(2,10,2)
 z <- y - x
 w = letters
Cách 1
 objects( )
[1] "w" "x" "y" "z"
Cách 2
 ls( )
[1] "w" "x" "y" "z"
Cách 3
 library(lsr)
 who()
- - Name - - - - Class - - - - Size - -
w character 26
x numeric 5
y numeric 5
z numeric 5
Loại bỏ một hoặc một số biến cụ thể: rm(x) hoặc rm(y,z)
Loại bỏ tất cả các biến hiện có:
Cách 1:
 rm(list = objects( ))
 rm(list = ls( ))
Cách 2:
 rmAll( )
1.2 Nhập và xuất dữ liệu trên R
1.2.1 Nhập dữ liệu trực tiếp:
Cách 1: c( ) và data.frame( )
 name = c("A", "B", "C", "D")
 age = c(18, 21, 35, 50)
 sex = c("M", "F", "M", "F")
 weight = c(60.3, 48.5, 62.0, 47.2)
 data = data.frame(name, age, sex, weight)
Cách 2: edit(data.frame( ))
1.2.2 Nhập dữ liệu gián tiếp:
Đuôi “*.csv” (CSV comma delimited):
 Tên đối tượng = read.csv(file = file.choose(), header = TRUE/FALSE)
Đuôi “*.txt”:
 Tên đối tượng = read.table(file = file.choose(), header = TRUE/FALSE)
Đuôi “*.sav” và file STATA có đuôi “*.dta” (Cài thêm package: foreign)
 Tên đối tượng = read.spss(file.choose( )) # file SPSS
 Tên đối tượng = read.dta(file.choose( )) # file STATA
Kiểm tra xem đối tượng:
 Có phải là một data.frame: is.data.frame( ) (số: is.numeric( ))
 Cột: ncol( )
 Dòng: nrow( )
 Dòng và cột: dim( )
 Đọc 6 dòng đầu/cuối: head( )/tail( )
 Tên biến: names( )
1.2.3 Xuất dữ liệu
write.table(data, file = “∗.xls”, row.names = FALSE, sep = “\t”)
1.3 Biên tập dữ liệu
1.3.1 Tạo biến mới
Tính toán số trên các biến của data.frame:
Hàm thông dụng Mô tả
+ Cộng
- Trừ
* Nhân
/ Chia
%/% Chia lấy phần nguyên
%% Chia lấy phần dư
^ hoặc ** Luỹ thừa
round(x, digits = n) Làm tròn
sqrt(x) Căn bậc hai của x
Tạo biến mới:
 data$sum = data$x1 + data$x2
Dữ liệu có NA:
 x = c(2.6,2.7,2.8,NA,3.0)
 is.na(x)
[1] FALSE FALSE FALSE TRUE FALSE
 x[!is.na(x)] #lờ đi NA
[1] 2.6 2.7 2.8 3.0
1.3.2 Mã hoá dữ liệu
Các phép toán logic:
Phép toán Mô tả
> Lớn hơn
< Nhỏ hơn
<= Nhỏ hơn hoặc bằng
>= Lớn hơn hoặc bằng
x|y x hoặc y
x&y x và y
!x Phủ định x
VD:
 diem = read.csv(file.choose(), header = T)
 diem$DTB = (diem$DH1 + diem$DH2 + diem$DH3)/3
 diem$ketqua[diem$DTB < 5] = "Rot"
 diem$ketqua[diem$DTB >= 5] = "Dau"
 diem$ketqua
 table(diem$ketqua)
1.3.3 Sắp xếp dữ liệu
Sắp theo thứ tự tăng dần: dùng order(biến)
Sắp theo thứ tự giảm dần: dùng order(-biến)
 Tên data.frame mới = tên data.frame[order(tên data.frame$tên biến),]
1.3.4 Rút trích dữ liệu
Rút trích một số phần tử:
 Tên data.frame[i,j] # Rút ra từ data.frame phần tử ở dòng thứ i và cột thứ
j.
 Tên data.frame[c(2:4),] # Rút ra từ data.frame những phần tử từ dòng 2 đến 4.
 Tên data.frame[,“têncột”] # Rút ra từ data.frame những phần tử có “têncột”.
 Tên data.frame[,-2] # Rút ra từ data.frame những phần tử trừ đi cột 2.
Rút trích một tập con dữ liệu:
 Tên data.frame mới = subset(tên data.frame, điều kiện rút trích)
1.3.5 Hợp nhất dữ liệu
Theo dòng: rbind( )
Theo cột: cbind( ) hoặc merge( )
Chú ý: (hàm merge)
 merge(data1, data2, all = F/T)
# Chỉ xuất những dòng kết nối được/Giữ tất cả từ hai data.frame.
 merge(data1, data2, all.x/all.y = T)
# Bao gồm tất cả những dòng của data.frame thứ nhất và chỉ gồm những dòng của
data.frame thứ hai được kết nối/Ngược lại.
1.3.6 Hoán chuyển dữ liệu
Hoán chuyển kiểu dữ liệu:
Hàm Mô tả
as.numeric Chuyển dữ liệu sang dạng số
as.character( ) Chuyển dữ liệu sang dạng character
as.matrix( ) Dữ liệu trình xuất như ma trận
as.data.frame Dữ liệu trình xuất như data.frame
Cột sang dòng: melt( )
 install.packages(“reshape2”)
 library(reshape2)
 dat1 = melt(dat, id = c(“id”, “sex”, “group”), measure.vars = c(“day1”, “day2”))
Dòng sang cột: cast( )
 install.packages(“reshape”)
 library(reshape)
 dat2 = cast(dat1, id + sex + group ∼ variable)

CHƯƠNG 3: PHÂN TÍCH MÔ TẢ VÀ BIỂU ĐỒ


 Trung bình: mean( )
 Trung vị: median( )
 Yếu vị:
freq = table( )
names(freq)[freq==max(freq)]
 Phương sai: var( )
 Độ lệch chuẩn: sd( )
 Hệ số biến thiên: sd( )/mean( )
 Sai số chuẩn: sd( )/sqrt(length( ))
 Phân vị: quantile(x, probs =, type = 7)
 Độ trải giữa: IQR( )
 Khoảng biến thiên: range( )
 Khoảng tin cậy 95%: [x¯- 1.96se;x¯+1.96se]

Bảng tần số: table( )


Bảng tần suất: prop.table( )

install.packages(“gmodels”)
library(gmodels)
CrossTable(X) # X là biến phân loại
CrossTable(X,Y) # X, Y là 2 biến phân loại

Biểu đồ Câu lệnh Loại biến


Histogram hist( ) Định lượng
Thanh (cột) barplot(table( )) Định tính
Tròn pie( ) Định tính
Hộp boxplot( ) Định lượng
Nhánh – Lá stem(table( )) Định lượng
Đường plot(x, y, type = “h,l,p,b”)

Chú ý:
main, xlim, ylim, xlab, ylab, col
lwd = 3: độ dày
pch: hình dạng điểm ; lty = “-.”
breaks = “FD”: chia cột “tự chia”
freq = T/F: tần số/tần suất
horiz = T/F: thanh ngang/dọc
beside = T/F: xếp cạnh
name.arg = c(“ ”): đặt tên cột
legend.text = T/F: tạo chú thích
horizontal = T/F: outliers ngang/dọc
boxplot.stats(x): kiểm tra giá trị outliers

Đường cong mật độ thực nghiệm:


 lines(density(data),col =, …)

summary(tên data.frame)
tapply(biến liên tục (định lượng), biến phân loại (định tính), chỉ số)

Vẽ nhiều đồ thị cùng lúc: par(mfrow = c(1,2))

x=0:31
p=dbinom(x,31,0.447)
library(distrEx)
X = DiscreteDistribution(x,p)
E(X),var(X),sd(X)
#Đồ thị hàm khối xác suất
plot(x,p,type = "h",col = 4,lwd = 3)
u = seq(-1,32,by=0.05)
#Đồ thị hàm phân phối tích luỹ
u = seq(-1,32,by=0.05)
Fu = p(X)(u)
plot(u,Fu,type = "h",col = 4,lwd = 3)

curve(dnorm(x,22.15,5.6),from = 22.15-4*5.6,to = 22.15+4*5.6,lwd = 3,col = 5)

curve(dchisq(x,5,ncp = 0),from = 0,to = 100,lwd = 3,col = 'blue')


curve(dchisq(x,15,ncp = 0),lwd = 3,col = "red",add = T)
curve(dchisq(x,30,ncp = 0),lwd = 3,col = "yellow",add = T)
legend("topright", legend = c("chi^2(5)", "chi^2(15)", "chi^2(30)"),col = c("blue", "red",
"yellow"), pch = c(16,15,14), cex = 0.7, lty = 1,lwd = 3, inset = 0.02)

h1 = prop.table(mtcars$hp)
hist(h1,col = 3,xlab = "hp")
lines(density(prop.table(mtcars$hp)),col="red")

You might also like