1. 程式人生 > >R語言學習筆記,(1)基礎及向量操作

R語言學習筆記,(1)基礎及向量操作

一、基礎部分(持續更新)

1、大小寫明感

2、source(“d:/test.R”):可以執行對應目錄下得test.R指令碼。R中\符號為轉義字元,所有目錄中需使用/或者\\.。

3、sink(“d:/out.txt”):將後續的輸出由終端轉向一個外部檔案,本例中為d;/out.txt。如果需要重新恢復到終端使用sink()。

4、print(x):列印x值。

5、註釋只能使用#,單行註釋,不支援多行註釋。

二、數值與向量

1、為一個向量賦值x <- c(1, 2, 3)或者c(1, 2, 3) -> x 或者 assign(“x”,  c(1, 2, 3))。

2、y <- c(x, 1, x):將向量組合起來賦值給y,y為1 ,2,3,1,1,2,3,共7個元素。

3、max(x),min(x)得到x中最大、最小值。

4、length(x):向量x的長度。

5、sum(x),prod(x):向量x中所有元素的和與積。

6、mean(x),var(x):x向量的均值和方差。

7、pmin、pmax:做最大或最小值截斷。

> pmin(10:1,5)
 [1] 5 5 5 5 5 5 4 3 2 1
> pmax(10:1,5)
 [1] 10  9  8  7  6  5  5  5  5  5

8、sort(x, TRUE),sort(x):對x進行降序,升序排列,返回排列後的一個向量。

9、sqrt(x):x開方,x可以為向量或者數字

10、1:30產生一個1到30的向量,類似於seq(1:30)。seq(1, 30 ,by=2):步長為2,seq(1:30, length=5):1到30均勻分成5等分。

11、rep(x, times=5): 產生一個新的向量重複x向量5次。

12、paste將字元按一定規律連結起來,可以任意多個引數,產生的向量長度桐引數中最長向量長度。

> labs <- paste(c("X","Y"), 1:10, sep="")
> labs
 [1] "X1"  "Y2"  "X3"  "Y4"  "X5"  "Y6"  "X7"  "Y8"  "X9"  "Y10"
> labs <- paste(c("X","Y"), 1:10)
> labs
 [1] "X 1"  "Y 2"  "X 3"  "Y 4"  "X 5"  "Y 6"  "X 7"  "Y 8"  "X 9"  "Y 10"
> labs <- paste(c("X","Y"), 1:10, sep="*")
> labs
 [1] "X*1"  "Y*2"  "X*3"  "Y*4"  "X*5"  "Y*6"  "X*7"  "Y*8"  "X*9"  "Y*10"

> c("x","y")[rep(c(1,2,3), times=5)]
 [1] "x" "y" NA  "x" "y" NA  "x" "y" NA  "x" "y" NA  "x" "y" NA 
> c("x","y")[rep(c(1,2,1), times=5)]
 [1] "x" "y" "x" "x" "y" "x" "x" "y" "x" "x" "y" "x" "x" "y" "x"

13、y <- x[x>3]:將x中大於3的元素作為y的元素

         y<- (x+)(x>3):首先將x中所有元素+1,然後將大於3的元素作為y的元素。

14、向量可以通過下表訪問:x[8]表示第8個元素,x[1:10]表示,如果是負數,表示去掉對應的元素

> x[-2:-3]
[1] 0 4
> x
[1] 0 2 3 4

15、names屬性可以使用字串作為索引,還不是太瞭解,看著下面的例子有點像map資料結構。

> x
[1] 0 2 3 4
> names(x) <- c("a","b","c","d")

> x["a"]


> x["b"]


> x[c("a", "b")]
a b 
0 2 

16、x[is.na(x)] <- 0:將NA元素用0代替。

17、向量中如果有字串,其他數字將被轉換為字串。

> z <- c(1, 'b', 23)
> z
[1] "1"  "b"  "23"