赞
踩
数值型(numeric):1.3, 2
字符型(character):"a", "1"
逻辑型(logical):TRUE(T), FALSE(F), NA
> 3>5
[1] FALSE
> 3==5
[1] FALSE
> 3<=5
[1] TRUE
> 3!=5
[1] TRUE
> "a"!="b"
[1] TRUE
> "a"=="b"
[1] FALSE
> 3>5 & 3==5
[1] FALSE
> 3<5 | 4>5
[1] TRUE
> !(3>=5)
[1] TRUE
判断数据类型的函数为: class()
> class("1")
[1] "character"
> class(1)
[1] "numeric"
> class(TRUE)
[1] "logical"
> class(NA)
[1] "logical"
#逻辑型->数值型 > as.numeric(TRUE) [1] 1 > as.numeric(FALSE) [1] 0 #字符型->数值型 > as.numeric("4") [1] 4 #数值型->逻辑型 > as.logical(4) [1] TRUE > as.logical(0) [1] FALSE #字符型->逻辑型 > as.logical("b") [1] NA > as.logical("s") [1] NA > #数值型->字符型 > as.character(4) [1] "4" > #逻辑型->字符型 > as.character(TRUE) [1] "TRUE" > as.character(FALSE) [1] "FALSE"
数据转换的优先顺序:
#向量包含: 数值型 + 字符型 = 字符型
> c(1,2,3,"a")
[1] "1" "2" "3" "a"
#向量包含: 数值型 + 逻辑型 = 数值型
> c(1,2,3,TRUE)
[1] 1 2 3 1
#向量包含: 字符型 + 数值型 + 逻辑型 = 字符型
> c(1,"a",3,TRUE)
[1] "1" "a" "3" "TRUE"
> 1:6
[1] 1 2 3 4 5 6
# 重复值 > rep("v",6) [1] "v" "v" "v" "v" "v" "v" > rep(c("a","b","c"),3) [1] "a" "b" "c" "a" "b" "c" "a" "b" "c" # 规律数 > seq(from = 1, to = 5, by = 1) [1] 1 2 3 4 5 > seq(from = 1, to = 5, by = 2) [1] 1 3 5 # 随机数 #生成5个服从正态分布(均值为0,标准差为1)的随机数 > rnorm(5, mean = 0, sd = 1) [1] 2.0884427 -0.8395444 0.4313966 -1.4728999 -2.3550284
> paste(rep("x",5),1:5) # paste的分隔符默认为 空格
[1] "x 1" "x 2" "x 3" "x 4" "x 5"
> paste0(rep("x",5),1:5) # paste0无分隔符
[1] "x1" "x2" "x3" "x4" "x5"
# 标准赋值符号 <-
> x <- c(1,2,3,4)
> x
[1] 1 2 3 4
# 非标准赋值符号 =
> y = c(1,2,3,4)
> y
[1] 1 2 3 4
> x <- c(1,2,3,4)
> x+1
[1] 2 3 4 5
> log(x)
[1] 0.0000000 0.6931472 1.0986123 1.3862944
> sqrt(x)
[1] 1.000000 1.414214 1.732051 2.000000
> x <- c(1,2,3,4)
> x > 3
[1] FALSE FALSE FALSE TRUE
> x <- c(1,2,3,4,5) > #最小值 > min(x) [1] 1 > #最大值 > max(x) [1] 5 > #均值 > mean(x) [1] 3 > #中位数 > median(x) [1] 3 > #方差 > var(x) [1] 2.5 > #标准差 > sd(x) [1] 1.581139 > #求和 > sum(x) [1] 15 > #升序排序 > sort(x) [1] 1 2 3 4 5 > #降序排序 > sort(x,decreasing = TRUE) [1] 5 4 3 2 1
> x <- c(1,2,3,1,2,5) > # 统计向量元素个数 > length(x) [1] 6 > # 统计向量重复元素个数 > table(x) x 1 2 3 5 #(x中的元素) 2 2 1 1 #(相应元素的个数) > # 判断向量元素是否重复 > duplicated(x) [1] FALSE FALSE FALSE TRUE TRUE FALSE > # 统计向量元素个数 > length(x) [1] 6 > # 去重复 > unique(x) [1] 1 2 3 5
# 两个向量长度一致时
> x <- c(1,2,3,4,5)
> y <- c(1,2,5,4,8)
>
> x == y
[1] TRUE TRUE FALSE TRUE FALSE
# 两个向量长度不一致时
> x <- c(1,2,3,1,2,5)
> y <- c(1,2,5)
>
> #长度小的向量y发生循环补齐,补齐的元素个数与x相同,即 y : (1,2,5,1,2,5)
> x == y
[1] TRUE TRUE FALSE TRUE TRUE TRUE
> x <- c(1,2,3,1,2,5)
> y <- c(1,2,5)
> # 加 减 乘 除
> x + y
[1] 2 4 8 2 4 10
> x - y
[1] 0 0 -2 0 0 0
> x * y
[1] 1 4 15 1 4 25
> x / y
[1] 1.0 1.0 0.6 1.0 1.0 1.0
> x <- c(1,2,3,1,2,5)
> y <- c(1,2,5)
> paste(x,y) # paste的分隔符默认为 空格
[1] "1 1" "2 2" "3 5" "1 1" "2 2" "5 5"
> paste0(x,y) # paste0 无分隔符
[1] "11" "22" "35" "11" "22" "55"
> paste(x,y,sep = "")# 取消paste的分隔符,结果与paste0相同
[1] "11" "22" "35" "11" "22" "55"
> paste(x,y,sep = ",")# paste的分隔符设置为 ,
[1] "1,1" "2,2" "3,5" "1,1" "2,2" "5,5"
> x <- c(1,2,3,1,2,5) > y <- c(1,2,5,1,6) > # 交集 > intersect(x,y) [1] 1 2 5 > # 并集 > union(x,y) [1] 1 2 3 5 6 > # 差集:x除去(x,y)的交集元素 > setdiff(x,y) [1] 3 > # 差集:y除去(x,y)的交集元素 > setdiff(y,x) [1] 6
> x <- c(1,2,3,1,2,5)
> y <- c(1,2,5,1,6)
> # x与y相同位置的元素相等吗 返回值个数为x,y元素个数的最大值
> x == y
[1] TRUE TRUE FALSE TRUE FALSE FALSE
> # x的元素在y中存在吗,返回值个数与x元素个数相同
> x %in% y
[1] TRUE TRUE FALSE TRUE TRUE TRUE
> # y的元素在x中存在吗,返回值个数与y元素个数相同
> y %in% x
[1] TRUE TRUE TRUE TRUE FALSE
#单个向量
> x <- 2:10 # (2,3,4,5,6,7,8,9,10)
> # 筛选出x > 7的值
> x>7
[1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE
> x[x>7]
[1] 8 9 10
#两个向量
> x <- 2:10 # (2,3,4,5,6,7,8,9,10)
> y <- 5:11 # (5,6,7,8,9,10,11)
> # 筛选出x存在于y中的值
> x[x %in% y]
[1] 5 6 7 8 9 10
x <- 2:10 # (2,3,4,5,6,7,8,9,10)
# 筛选出x中第3个、第4个元素
> x[3:4]
[1] 4 5
# 筛选出x中第1个、第7个元素
> x[c(1,7)]
[1] 2 8
> x <- 2:10 > x [1] 2 3 4 5 6 7 8 9 10 > # 将第4个元素赋值为6 > x[4] <- 6 > x [1] 2 3 4 6 6 7 8 9 10 > # 之后,再将第1个元素赋值为6,第三个元素赋值为8 > x[c(1,3)] <- c(6,8) > x [1] 6 3 8 6 6 7 8 9 10 > # 最后,将元素值为6的元素赋值为8 > x[x == 6] <- 8 > x [1] 8 3 8 8 8 7 8 9 10
# 创建向量scores 表示分数
> scores <- c(100,59,78,65,32)
> scores
[1] 100 59 78 65 32
#为向量scores中的元素命名
> names(scores) <- c("ming","uzi","gala","xun","elk")
> scores
ming uzi gala xun elk
100 59 78 65 32
# 取出ming和gala的分数 > scores[c(1,3)] # 按照坐标取 ming gala 100 78 > scores[c("ming","gala")] # 按照名称取 ming gala 100 78 > scores[scores>60] # 按照逻辑值取 ming gala xun 100 78 65 # 取出分数超过60的名字 > names(scores)[scores>60] [1] "ming" "gala" "xun"
from 生信技能树课程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。