Thứ Sáu, 18 tháng 9, 2015

Học R qua swirl

R có swirl dùng để học khá nhanh

install.packages("swirl")
library(swirl)
swirl()



Có khoảng 15 bài vừa là lý thuyết vừa là thục hành - trắc nghiệm 

Kiểu thế này


> vect2 <- c(11,2,NA)

| You got it right!


  |                                                                                                 
  |=============================================================================              |  84%
| Then, we can add the `names` attribute to vect2 after the fact with names(vect2) <- c("foo",
| "bar", "norf"). Go ahead.

> names(vect2)<- c("foo","bar","norf")

| Great job!


  |                                                                                                 
  |===============================================================================            |  87%
| Now, let's check that vect and vect2 are the same by passing them as arguments to the identical()
| function.

Thứ Hai, 14 tháng 9, 2015

function trong R

Khai báo function đại khái dư lày

rankhospital <- function(state, outcome, num = "best")

có cái hàm rất chuối là stop xem ví dụ

  1. rankhospital <- function(state, outcome, num = "best") {
  2. ## Read outcome data
  3. ## Check that state and outcome are valid
  4. ## Return hospital name in that state with the given rank
  5. ## 30-day death rate
  6. if(outcome=="heart attack"||outcome=="heart failure"||outcome=="pneumonia")
  7. {
  8. }
  9. else
  10. {
  11.         #print( "invalid outcome")
  12.         stop ("invalid outcome")
  13. }
  14. states = c('AL''AK''AS''AZ''AR''CA''CO''CT''DE''DC''FM''FL''GA''GU''HI''ID''IL''IN''IA''KS''KY''LA','ME''MH''MD''MA''MI''MN''MS''MO''MT''NE''NV''NH''NJ''NM''NY''NC''ND''MP''OH''OK''OR''PW''PA','PR''RI''SC''SD''TN''TX''UT''VT''VI''VA''WA''WV''WI''WY''AE''AA''AP')
  15. if(state %in% names(states) )
  16. {
  17. }
  18. else
  19. {
  20.         #print( "invalid state")
  21.         stop("invalid state")
  22. }
  23. }
function thì có thể nhận tham số qua thứ tự hoặc qua tên tham số

> mydata <- rnorm(100)
> sd(mydata)
> sd(x = mydata)
> sd(x = mydata, na.rm = FALSE)
> sd(na.rm = FALSE, x = mydata)
> sd(na.rm = FALSE, mydata)

Tự học R

Ngôn ngữ R có nguồn gốc từ ngôn ngữ S

S thì được viết bởi John Chambers tại  Bell Labs năm 1976 chuyên về phân tích thống kê  .

R được viết vào năm 1991 , và public vào 1993 và là ngôn ngữ opensource (GPL)

R có thể chạy được trên hầu hết các nền tảng hệ điều hành và vi xử lý .

Nói một cách ngắn gọn, R là một phần mềm sử dụng cho phân tích thống kê và đồ thị. Thật ra về bản chất, R là ngôn ngữ máy tính đa năng, có thể sử dụng cho nhiều mục tiêu khác nhau, từ tính toán đơn giản, toán học giả trí, tính toán ma trận, đến các phân tích thống kê phức tạp. Vì là một ngôn ngữ cho nên người ta có thể sử dụng R để phát triển các thành phần mềm chuyên môn cho một vẫn đề tính toán cá biệt.

Để sử dụng R việc đầu tiên chúng ta cần làm là cài đặt R trong máy tính của mình. Để làm điều này chúng ta truy cập vào website. http://cran.R-project.org và tải R xuống. Khi đã tải R xuống máy tính, bước kế tiếp là cài đặt vào máy tính. Để làm việc này, chúng ta chỉ đơn giản nhấn chuột vào tài liều trên và làm theo hướng dẫn cách cài đặt trên màn hình. Đây là một bước rất đơn giản chỉ cần 1 phút là việc cài đặt sẽ hoàn tất. Sau khi hoàn tất việc cài đặt một icon sẽ xuất hiện trên desktop của máy tính. Đến đây thì chúng ta đã sắn sàng sử dụng R có thể nhấp chuột vào icon này

 Tàu nhanh một số điểm của R như sau .

 x <- 5

có nghĩa là phép gán 5 vào biến x

về các phép toán so sánh thì same họ nhà C

Riêng với bọn chuyên statistic này sẽ có vài kiểu dữ liệu dị như sau

1 Vector hiểu là 1 dạng array

The c() function can be used to create vectors of objects.
> x <- c(0.5, 0.6)       ## numeric
> x <- c(TRUE, FALSE)    ## logical
> x <- c(T, F)           ## logical
> x <- c("a", "b", "c")  ## character
> x <- 9:29              ## integer
> x <- c(1+0i, 2+4i)     ## complex
Using the vector() function
> x <- vector("numeric", length = 10) 
> x
 [1] 0 0 0 0 0 0 0 0 0 0


2.Ma trận 
> m <- matrix(nrow = 2, ncol = 3) 
> m
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA
> dim(m)
[1] 2 3
> attributes(m)
$dim
[1] 2 3
3.List giống vector nhưng kiểu dữ liệu trong list có thể khác nhau
> x <- list(1, "a", TRUE, 1 + 4i) 
> x
[[1]]
[1] 1

[[2]] 
[1] "a"

[[3]]
[1] TRUE

[[4]]
[1] 1+4i
4.factor như kiểu list nhưng nó có nhãn (label)

> x <- factor(c("yes", "yes", "no", "yes", "no")) 
> x
[1] yes yes no yes no
Levels: no yes
> table(x) 
x
no yes 
 2   3
> unclass(x)
[1] 2 2 1 2 1
attr(,"levels")
[1] "no"  "yes"
5.data frame cái này thì giống ma trận nhưng kiểu dữ liệu có thể khác nhau
> x <- data.frame(foo = 1:4, bar = c(T, T, F, F)) 
> x
  foo   bar
1   1  TRUE
2   2  TRUE
3   3 FALSE
4   4 FALSE
> nrow(x)
[1] 4
> ncol(x)
[1] 2
6.Names
R object có thể có names 
> x <- 1:3
> names(x)
NULL
> names(x) <- c("foo", "bar", "norf") 
> x
foo bar norf 
  1   2    3
> names(x)
[1] "foo"  "bar"  "norf"
list cũng có thể có names
> x <- list(a = 1, b = 2, c = 3) 
> x
$a
[1] 1

$b 
[1] 2

$c 
[1] 3

ma trận cũng có thể có names
> m <- matrix(1:4, nrow = 2, ncol = 2)
> dimnames(m) <- list(c("a", "b"), c("c", "d")) 
> m
  c d 
a 1 3 
b 2 4