1. 程式人生 > >R: vector 向量的創建、操作等。

R: vector 向量的創建、操作等。

tor 向量 數據 [1] als 賦值 結合 編輯 擴展

###################################################

問題:創建、操作向量 18.4.27

怎麽創建向量 vector,,及其相關操作 ???

解決方案:

a <- 3; 或 a=3 #單數據變量

a * 2; sqrt(a); #單數據變量的簡單運算

a2 = seq(1:8); a2 #生成等差序列 #[1] 1 2 3 4 5 6 7 8

vec1 = seq(from=0,to=9,by=2); vec1 ##[1] 0 2 4 6 8

vec2 = rep(vec_1,2); vec2 #生成重復序列 # [1] 0 2 4 6 8 10 0 2 4 6 8 10

vec3 = rep(vec_1,each=2); vec3 ## [1] 0 0 2 2 4 4 6 6 8 8 10 10

vec4 = rep(vec_1,c(1,2,3,3,2,2)); vec4 #[1] 0 2 2 4 4 4 6 6 6 8 8 10 10

link <- c(vec1,100:105,vec1) #[1] 0 2 4 6 8 100 101 102 103 104 105 0 2 4 6 8

#c()函數可以連接不同的變量,生成一個新的變量。

vec = vector(length=6); vec #[1] FALSE FALSE FALSE FALSE FALSE FALSE

# vector 函數生成一個長度為 length 的空向量,元素為FALSE。可逐個賦值。vector 函數可用來代替 c 函數。

#相關操作:

#查詢元素

vec1[3]; # 返回索引為 3 的元素

vec1[-3]; # 返回除了索引為 3 的其他所有元素

vec1[2:4]; #返回索引為 2-4 的元素

vec1[c(2,4)]; #返回指定的,索引為 2和4 的元素

vec1[vec1 > 5] #返回所有值大於5的元素。

vec1[which(vec1 > 5)] #同上,,返回所有值大於5的元素

vec1[vec1 %in% c(1,2,5,"b")] #返回一個邏輯向量,長度同vec1,vec1中元素在c(),中則為 TRUE.

length(vec1); #返回向量長度,可結合上行篩選條件。

#編輯向量

x[x=2] <- 12; ## 將x的第1個為2的元素 變為12

x[x==2] <- 12; ## 將 x 中,所有為2的元素 變為12

sum(vec1); ## sum min max mean median var sd 均可以如上應用。

#如果變量中有缺失值,需要添加參數na.rm=TRUE,其默認為FALSE。 計算 sum min max mean median 時,

#而有的內置函數用 na.action=TRUE,處理缺失值。還有用其他句式等,用前help (?)一下

append(v,10,after=3) #在第三個元素後面加入10,新向量 <- (原向量,新元素) ,添加元素的及合並向量

#如果向量 x 包括名稱: x[2]得到名字和值成對輸出,x[[2]]只輸出值。

which.max(x) # 找出最大元素的索引

which.min(x) # 找出大小的元素索引

which(x == 6.0) # 等於6.0的元素的索引

which(x > 5) # 大於5的元素的索引

討論擴展:

向量無橫豎之分。

另請參閱:

R: vector 向量的創建、操作等。