#1. 基本语法
#(1) print语句
print (“Hello world!”)
#(2) 变量赋值
var1 <- 1
var2 <- “a”
var3 <- TRUE
#(3) 运算符
#① 算术运算符
a <- 3
b <- 10
print(a+b) #13
print(b-a) #7
print(a*b) #30
print(b/a) #3.333333
print(b%%a) #1,取余
print(b%/%a) #3,取商
print(b^a) #1000,b的a次幂
#② 其他运算符
a <- 1:10
print(a) #1,2,3,4,5,6,7,8,9,10
print(1%in%a) #TRUE,判断1在不在a中
#(4) 行注释
#此行是注释信息
#(5) 获取当前工作路径
getwd()
#(6) 改变当前工作路径
setwd()
#2. 字符串函数
#(1) paste() #将两个字符串用特定的分隔符连接在一起
a <- “How”
b <- “are”
c <- “you?”
paste_ab <- paste(a,b,c,sep=" ")
print(paste_ab)
#(2) strsplit() #用特定字符分割字符串
a <- “How are you?”
b <- strsplit(a," ")
print (b)
#(3) nchar() #返回字符串中字符的个数
a <- “How”
print(nchar(a)) #3
a <- “How are you?”
print(nchar(a)) #12
#(4) toupper() #改变字符串为大写
a <- “wo shi xiaoxie”
print(toupper(a)) #“WO SHI XIAOXIE”
#(5) tolower() #改变字符串为小写
b <- “WO SHI DA XIE”
print(tolower(b)) #“wo shi daxie”
#(6) substring() #提取字符串子串
result <- substring(“Extract”, 5, 7)
print(result)
#(7) format() #格式化数字和字符串
result <- format(23.123456789, digits = 6) #digits是显示的总位数
print(result) #“23.1235”
result <- format(c(6,13.14521), scientific = TRUE) #scientific设置为TRUE以显示科学记数法
print(result) #“6.000000e+00” “1.314521e+01”
result <- format(23.47, nsmall = 5) #nsmall是小数点右边的最小位数
print(result) #“23.47000”
result <- format(13.7, width = 6) #width指示通过在开始处填充空白来显示的最小宽度
print(result) #" 13.7"
result <- format(“Hello”, width = 8, justify = “l”) #justify是字符串向左(“left”),右(“right”)或中心(“centre”)的显示
print(result) #"Hello "
result <- format(“Hello”, width = 8, justify = “c”)
print(result) #" Hello "
#3. 向量函数
#(1) sort() #对向量内容进行排序
v1 <- c(3,8,4,5,0,11,-9,304) #定义一个整型向量
v2 <- sort(v1) #对v1进行排序,并且把排序的结果赋给v2
print(v2) #输出v2
v3 <- sort(v1,decreasing=TRUE) #将v1按降序排列,并且将排序的结果赋给v3
print(v3) #输出v3
v4 <- c(“red”,“blue”,“yellow”) #定义一个字符型变量
v5 <- sort(v4) #对v4进行排序,并且把排序的结果赋给v5
v6 <- sort(v4,decreasing=TRUE) #将v4按降序排列,并且将排序的结果赋给v6
print(v5)
print(v6)
#(2) which()
a <- c(-1,1,0,3) #定义向量
print(which(a>0)) #输出a中大于0的元素的位置(index)
b <- c(“hello”,“world”) #定义向量
print(which(b==“hello”)) #输出b中"hello"的位置
#(3) ifelse()
a <- c(0.01,0.001,0.1,“NA”) #定义向量
aa <- ifelse(a==“NA”,1,a) #将a中的NA替换为1,并将修改之后的向量赋值给aa
print(aa) #输出aa
c <- c(-1,-2,0,1,2,3)
cc <- ifelse(c>0,1,0) #如果c中的值大于0就输出1,否则输出0,并将结果赋值给cc
print(cc) #输出cc
#(4) 基本统计函数
#① mean() #取平均数
a <- 1:5 #定义向量
print(mean(a)) #输出a的平均数
#② min() #取最小值
a <- 1:5 #定义向量
print(min(a)) #输出a的最小值
#③ max() #取最大值
a <- 1:5 #定义向量
print(max(a)) #输出a的最大值
#④ median() #取中位数
a <- 1:5 #定义向量
print(median(a)) #输出a的中位数
#⑤ sum() #求和
a <- 1:5
print(sum(a)) #输出a中所有元素的和
#⑥ sd() #标准差
a <- 1:5
print(sd(a)) #输出a的标准差
#4. 矩阵函数
#(1) t() #矩阵转置
M <- matrix(c(1:12), nrow = 4, byrow = TRUE) #定义矩阵
N <- t(M) #将M的转置结果赋值给N
print(N) #输出N
#(2) 获取矩阵的行和列
① ncol() #获取矩阵的列数
M <- matrix(c(1:12), nrow = 4, byrow = TRUE) #定义矩阵
print(ncol(M)) #输出矩阵的列数
② nrow() #获取矩阵的行数
M <- matrix(c(1:12), nrow = 4, byrow = TRUE) #定义矩阵
print(nrow(M)) #输出矩阵的行数
③ colnames() #矩阵的列名
M <- matrix(c(1:12), nrow = 4, byrow = TRUE) #定义矩阵
print(colnames(M)) #NULL
colnames(M) <- c(“c1”,“c2”,“c3”) #定义矩阵的列名
print(colnames(M)) #输出矩阵的列名
④ rownames() #矩阵的行名
M <- matrix(c(1:12), nrow = 4, byrow = TRUE) #定义矩阵
print(rownames(M)) #NULL
rownames(M) <- c(“r1”,“r2”,“r3”,“r4”) #定义矩阵的列名
print(rownames(M)) #输出矩阵的列名