windows 下载 R 和 R studio,以及R语言基本使用
目錄
一. 安裝與入門介紹
1. windows 下載 R 和 R studio
2. 常見問題的對應(yīng)包查詢
3. 解決RStudio 打開文件中文亂碼
4. 相關(guān)包
5. 獲取幫助、工作目錄、保存 R 文件
二. R常用數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)
1. 數(shù)值型、字符型、邏輯型
2. 判斷和轉(zhuǎn)換
3. 特殊值及其判斷
4. 數(shù)據(jù)結(jié)構(gòu)中的常量和變量賦值
5. 向量
6. 矩陣 [本質(zhì)上是存同一種數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu),用c會強(qiáng)制類型轉(zhuǎn)換]
7. 列表 [區(qū)別于矩陣,維度不要求一致,不要求存同種數(shù)據(jù)類型]
8. 數(shù)據(jù)框 [特殊的列表和矩陣]
三. R基本運(yùn)算和常用函數(shù)
1. 基本運(yùn)算
2. 向量相關(guān)函數(shù)
3. 數(shù)據(jù)框和矩陣相關(guān)函數(shù)
4. 字符函數(shù)與分布相關(guān)函數(shù)
四. R語法結(jié)構(gòu)-循環(huán)、條件、函數(shù)構(gòu)建
1. 循環(huán)和條件語句
2. 函數(shù)構(gòu)建
一. 安裝與入門介紹
1. windows 下載 R 和 R studio
The Comprehensive R Archive Networkhttps://mirrors.ustc.edu.cn/CRAN/
RStudio Desktop - Posithttps://posit.co/download/rstudio-desktop/
2. 常見問題的對應(yīng)包查詢
CRAN Task Views (ustc.edu.cn)https://mirrors.ustc.edu.cn/CRAN/web/views/
3. 解決RStudio 打開文件中文亂碼
File -> Reopen with Encoding -> utf-8
4. 相關(guān)包
一次安裝,多次加載;用 library(包名) 加載
5. 獲取幫助、工作目錄、保存 R 文件
#獲取幫助 help("library") #獲取工作目錄 getwd() setwd("E:/R") read.csv(file.choose())# 保存 .RData save() save.image() load()# 列出當(dāng)前環(huán)境中的對象 ls() rm() # 移除某個(gè)對象 rm(list=ls()) # 移除所有對象二. R常用數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)
1. 數(shù)值型、字符型、邏輯型
123,2.34;? ?"Hello,world", '123';? ? ? TRUE, T, FALSE, F
2. 判斷和轉(zhuǎn)換
is.numeric(123)? ;??is.character('123')? ;? ?is.logical('123')
as.numeric('123') ;? as.numeric(T)? ;? as.character(123)
3. 特殊值及其判斷
NA, is.na(NA)
NULL, is.null(NULL)
NAN, is.nan(NAN) ----not a number, e.g. 0/0
Inf, -Inf, is.infinite(-Inf)
4. 數(shù)據(jù)結(jié)構(gòu)中的常量和變量賦值
1)常量:
pi letters LETTERS month.name month.abb2)變量賦值:
v1 <- 1:5 # both 1 and 5 are inclusive v2 <- c(3,2,7,4,6) v3 <- rep(v2, times=2) v4 <- rep(v2, each=2) v5 <- rep(v2, times=2, each=2) v6 <- seq(from =2, to=9, by=3) v7 <- seq(from =2, to=9, length.out=3) v8 <- seq(from =2, by=3, length.out=4)v9 <- c('air','bic','cp') rep(v9,each=3)c(T,T,F,T)5. 向量
1)c會自動(dòng)轉(zhuǎn)換為同一類型
字符 > 數(shù)字 > 邏輯
2)向量長度、名稱、索引
# 向量元素名稱 names(v2) names(v2) <- v9 v2# 向量長度 length(v9)# 向量索引 v8[3] v8[c(1,3,5)] v8[-c(1,4)] ##負(fù)號表示排除,區(qū)分于python v2[c('aic','cp')] v1[v1%%2==1]6. 矩陣 [本質(zhì)上是存同一種數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu),用c會強(qiáng)制類型轉(zhuǎn)換]
m1 <- matrix(1:6,nrow = 2,# ncol =3,byrow = F,dimnames = list(c('r1','r2'),c('c1','c2','c3')) # 也可事后用 rownames(m1) <- c('R1','R2',...) 賦值 ) m1# matrix(NA, ncol=3, nrow=3)m2 <- matrix(c(1:6, letters[1:6]), ##強(qiáng)制轉(zhuǎn)換成characternrow = 3,byrow = T,dimnames = list(c('r1','r2','r3'),c('c1','c2','c3','c4')) ) m2 # 矩陣行列名稱 colnames(m1) rownames(m1) dimnames(m2)# 矩陣維度信息 dim(m1) ncol(m1) nrow(m1)# 矩陣索引 m2[1,2] # 返回向量 m2[1,] # 注意:不加逗號時(shí), m2[1] 返回第2行第1個(gè)值,而 m2['r1'] 返回 NA! m2['r1',] m2[,2] m2[,'c2']m2[1:2,2:3] # 返回矩陣 m2[c(1,3), c(2,4)] m2[c('r1','r2'),c('d2','c3')]# 矩陣轉(zhuǎn)換成向量 as.vector(m1)7. 列表 [區(qū)別于矩陣,維度不要求一致,不要求存同種數(shù)據(jù)類型]
l1 <- list( com1=v1,com2=m1) l1# 長度信息 length(l1)# 名稱 names(l1)# 列表索引 l1$com1 # 返回向量 l1[['com2']] # 返回矩陣 l1[[2]] # 返回矩陣 , 列表不能有 l1[1,2]的寫法l1['com1'] # 返回列表而非元素,所以列表索引要2個(gè)框 or $ l1[2] # 返回列表# 新建成分 l1$com3 <- 3:6 l1# 釋放列表 unlist(l1)8. 數(shù)據(jù)框 [特殊的列表和矩陣]
# 數(shù)據(jù)框 (特殊的列表-自動(dòng)生成行索引,初始化給出列) df1 <- data.frame(c1 = 2:5,c2 = LETTERS[2:5] ) df1# 維度信息 dim(df1) ncol(df1) nrow(df1)# 行列名稱 dimnames(df1) names(df1) colnames(df1) rownames(df1)# 數(shù)據(jù)框索引 df1[1:2, 2] # 返回向量 df1[,2] # 返回向量 df1[1,] # 返回?cái)?shù)據(jù)框df1[,"c1"] # 返回向量 df1['1',] # 返回?cái)?shù)據(jù)框# 新建列,同列表 df1$c3 <- 1:4 df1# 常見例子:生成用于網(wǎng)格搜索的數(shù)據(jù)框 expand.grid(mtry = 2:5,ntree = c(200, 500))三. R基本運(yùn)算和常用函數(shù)
1. 基本運(yùn)算
1 + 2 3 - 2 3 * 4 8 / 5c(1:4) / c(2:5) c(1:6) / c(2:5) # 循環(huán)擴(kuò)展4 ^ 3 exp(1) log(x=25, base=5) sqrt(4) abs(-5.6) sign(-5.6) round(3.45679,2) signif(3.245, 2) # 保留指定位有效數(shù)字 ceiling(3.2) floor(3.2)2 == 3 2 != 3 2 > 3 2 >= 32 %in% 2:5 # 表示在范圍內(nèi)(2>3) & (2 %in% 2:5) (2>3) | (2 %in% 2:5) !(2 %in% 2:5)2. 向量相關(guān)函數(shù)
# 向量相關(guān)函數(shù) v2 <- c(3,2,7,4,6,8,11,21) max(v2) cummax(v2)min(v2) cummin(v2)sum(v2) cumsum(v2)prod(v2) cumprod(v2)mean(v2) median(v2) sd(v2) var(v2)rev(v2) sort(v2)v5 <- rep(v2, times=2) table(v5) # 向量元素頻數(shù)統(tǒng)計(jì) unique(v5)# 索引函數(shù) which(v5==7) # 返回所有的TRUE的位置 which.max(v5) # 僅返回第一個(gè)max的位置 which.min(v5)# 交差并 intersect(1:5, 4:7) setdiff(1:5, 4:7) union(1:5, 4:7)3. 數(shù)據(jù)框和矩陣相關(guān)函數(shù)
dfs <- data.frame(a=1:5,b=3:7,d=letters[1:5] )# 行列合并 df1 <- dfs[1:3,] df1 df2 <- dfs[3:5,] df2rbind(df1, df2) ## 要求列數(shù)、列名稱相同 cbind(df1, df2) ## 要求行數(shù)相同# 行列運(yùn)算 colMeans(dfs[,1:2]) colSums(dfs[,1:2]) rowMeans(dfs[,1:2]) rowSums(dfs[,1:2])# apply(x, margin, function) ### 1代表行,2代表列 apply(dfs[,1:2], 2, sd) apply(dfs[,1:2],2,function(x){sum(is.na(x))} )# 對象結(jié)構(gòu)信息 str(dfs) summary(dfs) View(dfs) head(dfs, n=2) ## 默認(rèn)n=6 tail(dfs, n=2)# 矩陣運(yùn)算 m3 <- matrix(c(5,7,3,4),ncol=2,byrow=T ) m3m4 <- matrix(c(5,7,3,4,8,9),ncol=3,byrow=T ) m4t(m3) # 矩陣轉(zhuǎn)置 m3 %*% m4 # 矩陣相乘 solve(m3) # m3 %*% x = E, 矩陣求逆 solve(m3, m4) # m3 %*% x = m44. 字符函數(shù)與分布相關(guān)函數(shù)
# 字符函數(shù)與分布相關(guān)函數(shù)# 連接成字符向量 paste(1:5, collapse='+') paste(1:5, letters[1:8], sep='~') # 擴(kuò)散機(jī)制 paste0(1:5, letters[1:8]) # 一對一緊密相連# 字符長度 nchar(month.name)# 轉(zhuǎn)大小寫 toupper(month.name) tolower(month.name)# 含有某個(gè)字符的元素的索引 grep('Ju', month.name)# 替換指定字符 gsub('e', '000', month.name)# 隨機(jī)分布函數(shù) set.seed(24) sample(1:2, 12, replace=T) # 隨機(jī)抽樣 rnorm(10, mean=1, sd=2) pnorm(1, mean=1, sd=2) qnorm(0.5, mean=1, sd=2) dnorm(1, mean=1, sd=2)# par(mar = c(1, 1, 1, 1)) ### fig太大時(shí)可以用這行 plot( x=seq(-5, 7, length=1000),y=dnorm(seq(-5, 7, length=1000),mean=1,sd=2),type= 'l',ylim = c(0,0.25)) abline(h=0, v=1)四. R語法結(jié)構(gòu)-循環(huán)、條件、函數(shù)構(gòu)建
1. 循環(huán)和條件語句
# 例子 df <- data.frame(c1 = 2:5,c2 = 4:7,c3 = -19:-16)for (i in 1:nrow(df)) {print(sum(df[i,])) }j = 1 while (j <= nrow(df)) {print(sum(df[j,]))j = j+1 }# next, break 等價(jià)于 python中的continue和break# 條件結(jié)構(gòu): if.. else if.. else..; ifelse s = 40 ifelse(s %% 2 ==0, '偶數(shù)', '奇數(shù)')2. 函數(shù)構(gòu)建
# 函數(shù)構(gòu)建 f1 <- function(aug1, aug2=4){res <- aug1 + aug2return (res) } f1(34) f1(34,5)總結(jié)
以上是生活随笔為你收集整理的windows 下载 R 和 R studio,以及R语言基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于MATLAB GUI的LMD的特征提
- 下一篇: html音乐播放器 频谱,HTML5 C