R语言基础概要

基于学习总结和网上收集!汇总供以后查看学习!

运算符

数学运算:

+,-,*,/,^,%%。(加,减,乘,除,乘方,求余。)

比较运算:

>,<,>=,<=,==,!=。
(大于,小于,大于等于,小于等于,等于,不等于。)

逻辑运算:

&,|,!。(与,或,非。)

初始基本操作

获取工作目录。


> getwd()

设定工作目录

setwd("")

寻求帮助

help(com)
?com
??con

查看实例

example(com)

查看变量格式

args()

列出已安装的包

library()

载入包

library(AER) 
require(AER)

获取包的信息

library(help = ggplot2)

去除载入的包ggplot2

detach(package:ggplot2)

列出已载入的包

search()

列出已载入的包中的所有数据集

data()

列出已安装的包中的所有数据集

data(package = .packages(all.available = TRUE))

列出包ggplot2里的所有数据集

try(data(package = "ggplot2") )

获取数据集的信息

 help(iris)

贴上数据集iris,其作用是可以直接对数据集里的变量进行操作。

attach(Affairs)

上述操作的逆操作

detach(Affairs)

一般的操作

列出所有对象

objects()
ls()

查看对象x的模式:空,数值,字符,逻辑,复数,列表,函数

(NULL,numeric,character,logical,complex,list,function)。

mode(x)

查看对象x的类型:除了mode里列出的几种类型外,还有整数,矩阵,因子,阵列,数据框,时间序列(integer,matrix,factor,array,data frame,ts)等其他类型。mode主要用于区别数据存放的方式,而class是一种更细微的分类方式,比如矩阵,就是一种更“有序”的数据存放方式。此命令比mode常用。

 class(x)

把对象x转为矩阵型

as.matrix(x)

把对象x转为数值型

as.numeric(x)

查看对象x的结构,str是structure的缩写

 str(x)

移除对象x

 rm(x)

移除所有对象

rm(list=ls(all=TRUE))
rm(list=ls())

与向量有关的操作

生成向量

x = c(1,2,4)

#生成元素依次为"a","b","cd"的字符向量x

 x = c("a","b","cd")

生成"a b cd"的字符x

 x = paste("a","b","cd")

向量x的第a到b个元素

x[a:b]

剔除向量x第i个元素所得的向量

x[-i]

向量x的长度

length(x)

生成以一个n维数值型向量x,第一个元素为a,最后一个元素为b,中间元素依次等距递增。(假设a<b)

x = seq(a, b, length = n)

生成一个数值型向量x,第一个元素为a,其后元素依次加c,直到最后一个元素加c大于b。(假设a<b)

x = seq(a, b, c)

从1开始生成一个递增或递减数值型向量x,最后一个元素绝对值为小于等于|a|的最大整数。

x = seq(a)

生成一个从a递增(减)到b的数值型向量x。(a和b都是整数)

x = a:b

对向量v进行n次复制生成新的向量x

x = rep(v, n)

依次对向量v的每个元素复制n此生成新的向量x

x = rep(v, each = n)

生成一个向量x,其中每个元素是v对应元素的最近整数

x = round(v)

排序

order(x)

获得向量x每个元素大小位置

rank(x)

对向量x从小到大进行排序。降序:sort(x, decreasing = TRUE)。

sort(x)

根据因子f对向量x分类执行函数g

 tapply(x,f,g)

向量x按因子f分类

split(x,f)

返回向量x的差分向量

 diff(x)

返回向量x的累加向量

 cumsum(x)

与矩阵有关的基本操作

生成m行n列的0矩阵

 M = matrix(0,c(m,n))

按行合并矩阵X和Y形成新矩阵M。(X和Y列数需相同)

> M = rbind(X,Y)

按列合并矩阵X和Y形成新矩阵M。(X和Y行数需相同)

> M = cbind(X,Y)

矩阵M的列名

> colnames(M)

矩阵M的行名

> rownames(M)

矩阵M的行数

> nrow(M)

矩阵M的列数

> ncol(M)

矩阵M的对角线元素形成的向量

> diag(M)

生成以向量x为对角线元素,其他位置元素为0的矩阵M

> M = diag(x)

矩阵M的维度

> dim(M)

矩阵M第i行。(数值型)

> M[i,]

矩阵M第i行。(矩阵型)

> M[i,,drop = FALSE]

删除第i行

> M = M[-i,]

矩阵M第j列

> M[,j]

矩阵M第i行j列元素

> M[i,j]

矩阵M的转置。若M为数值型向量,则t(M)为矩阵型行向量

> t(M)

矩阵X乘矩阵Y。若Y是数值型的向量,R会自动判断其为行向量还是列向量。若X与Y为维度匹配的数值型向量,则返回的是矩阵型向量的内积

> X%*%Y

数值型向量x与y的外积(矩阵型)

> x%o%y

矩阵X与矩阵Y的Hadamard乘积。加、减、除、求余的规则和乘相同,即相同位置的元素进行运算

> X*Y

求矩阵M的特征值和特征向量

> eigen(M)$val
> eigen(M)$vec

矩阵M求逆

> solve(M)

求解线性方程Ax=b

> solve(A,b)

对矩阵M的行(dimcode=1)或列(dimcode=2)依次进行函数f操作,f的变量(arguments)方正fargs里

> apply(M, dimcode, f, fargs)

与列表有关的基本操作

建立列表L

> L = list(a = , b = , c = ,...)

返回列表L里的对象a

> L$a
> L[[a]]

去除列表L里的对象a

> L$a = NULL

列出列表L里的对象名

> names(L)

去掉列表L里的对象名

> unname(L)

list apply。功能与apply类似(参考上面的apply),用于列表型数据

> lapply(...)

simplified apply。功能与lapply类似,区别在于函数结果的类型不是列表(list)

> sapply(...)

与数据框有关的基本操作

数据框是一种特殊的列表,所以对列表适用的函数往往对数据框也适用。此外,数据框也有矩阵型数据的特征,所以一些适用于矩阵型数据的函数,不如rbind,cbind,apply等也可以作用在数据框上。

创建数据框Data

> Data = data.frame(...)

编辑数据框Data

> fix(Data)

显示数据框Data的前几行

> head(Data)

列出数据框Data的组成部分

> attribute(Data)

显示数据框Data的变量名

> names(Data)

显示数据框Data的行名

> row.names(Data)

数据框Data中名为name1的变量

> Data$name1

数据框Data中第i个变量形成的数据框

> Data[i]

合并数据框D1和D2,需要D1和D2中有至少一个相同的变量

> merge(D1,D2)

与逻辑型数据有关的基本操作

判断是否对象x是数据框

> is.data.frame(x)

判断是否对象x的每个元素都大于a

> all(x>a)

判断对象x的元素中是否存在一个大于a

> any(x>a)

判断x的每个元素是否大于y的每个元素

> x>y

向量x中大于a的元素组成的新向量

> x[x>a]

向量x中大于a的元素组成的新向量。与上面例子的区别在于若向量元素里有NA,上面的例子会保留在结果中,而subset命令会剔除掉

> subset(x, x>a)

返回向量中大于a的元素的位置

> which(x, x>a)

生成一个与b(逻辑向量)维度相同的数值向量,若b[i]为TRUE,则x[i]为u,反之为v

x = ifelse(b, u, v)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容