2-1到2-6的代碼
#2-1 R的五中數據類型character,numeric,integer,logical,complex
x1 <- "asdf"? ?#字符型
x2 <- "3.14"? ?#數值型
x3 <- 2L? ? ? ?#整數型
x4 <- TRUE? ? ?#邏輯型
x5 <- 1-2i? ? ?#復數型
class(x1)? ? ? #查看數據的類型
#2-2 Vector 向量的三種創建方法,兩個參數:類型,長度
v1 <- vector("character", length = 10)? ? #第一次回顧出錯:v1 <- vector(1:12,nrow=3,ncol=4)
v2 <- 1:5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#出現1到5的整數
v3 <- c("1", "2", "3")? ? ? ? ? ? ? ? ? ? #出現字符1到3
#如果給向量賦值時元素類型不一致,R就會強制轉換,將他們變為同一類型
v4 <- c(TRUE, 1, "asdf")
#強制轉換的函數如下:
as.numeric(v3)? ? ? ? ? ? ? ? ? ? ? ? ? ??
as.logical(v3)
as.character(v3)
#給向量每一個元素添加名稱
names(v2) <- c("a", "b","c", "d", "e")? ??
#2-3 matrix 矩陣 三個參數:內容(可?。袛?,列數
m1 <- matrix(1:12, nrow = 2, ncol = 3)? ? ?#matrix 矩陣有三個參數,第一個是內容,第二個,第三個是行列
#維度屬性
dim(m1)
#查看矩陣的所有屬性
attributes(m1)
#由向量來創建矩陣的方法
m2 <- 1:6
dim(m2) <- c(2,3)
#將兩個矩陣按行拼接
rbind(m1, m2)
#將兩個矩陣按列拼接
cbind(m1, m2)
#使用列表給矩陣的行列命名
dimnames(m1) <- list(c("a", "b"),c("c", "d", "e"))
#array 數組,兩個參數:內容和維度
a1 <- array(1:24, dim = c(4,6))
a2 <- array(1:24, dim = c(2,3,4) )
#2-4 list 列表
l1 <- list(123, 10L, "asdf", 3+4i, TRUE)? ? #每個元素沒有名字
l2 <- list(a=1, b=2, c=3)? ? ? ? ? ? ? ? ? ?#列表中每個元素名字分別為abc
#生成一個列表,列表中每一個元素大于1
l3 <- list(c(1,2,3), c(4,5,6,7))
#2-5 factor 因子處理分類數據的,有序或者無序,有兩個參數:內容,基線水平
f1 <- factor(c("female", "female", "male", "female", "male"))
f2 <- factor(c("female", "female", "male", "female", "male"), levels = c("male", "female"))
#table 對于當前的因子有一個整體的了解
table(f1)
#去掉因子的屬性,看因子的內容
unclass(f2)
class(f2)? ? ? ? ? ? ? ? ? ? ?#上一步并未去掉因子的屬性,f2仍然為因子類型
class(unclass(f2))? ? ? ? ? ? #去掉因子的屬性,因子變為整型
# 2-6 missing value 缺失值NA和NaN,NA范圍大,NaN范圍小。NA有類型,可以是整數值的缺失,也可以是字符的缺失。
n1 <- c(1, NA, 2, NA, 3)? ? ? #NaN不能識別NA
is.na(n1)
is.nan(n1)
n2 <- c(1, NaN, 2, NaN, 3)? ? #NA可以識別NaN
is.na(n2)
is.nan(n2)
2019-05-10
好棒好棒