在r的命令下如何列出所有的变量excel查找对象并列出

Data Analysis for Life Sciences 1: Statistics and R:R的基本命令
R的基本命令第1周
1.1 下载安装数据包 install.packages("package名")——从CRAN中下载并安装数据包 install.github("文件夹名/文件名")——从github中下载并安装数据包 1.2 生成向量及画图 x &- 1:10——产生1到10的整数向量,并赋值给变量xy &- rnorm(10)——产生一个由10个随机数组成的向量,这些随机数的均值为0,标准差为1 用?rorm()命令(控制台中?+函数名是查询该函数的意思),解释如下: Normal {stats}
R Documentation The Normal Distribution Description Density, distribution function, quantile function and random generation for the normal distribution with mean equal to mean and standard deviation equal to sd. Usage dnorm(x, mean = 0, sd = 1, log = FALSE) pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) rnorm(n, mean = 0, sd = 1) Arguments x, q
vector of quantiles. p
vector of probabilities. n
number of observations. If length(n) & 1, the length is taken to be the number required. mean
vector of means. sd
vector of standard deviations. log, log.p
if TRUE, probabilities p are given as log(p). lower.tail
if TRUE (default), probabilities are P[X ≤ x] otherwise, P[X & x]. plot(x,y)——以x为横坐标,y为纵坐标画图。
根据R的解释,此函数默认画散点图。特殊的情况下画函数曲线,例如: plot(sin,pi)——画(0,pi)区间的内正弦函数图像
生成的图可以通过export功能导出成图片或者pdf。 1.3 读取csv数据文件 dat &- read.csv("csv文件名")——读取csv数据文件 (一个小trick,输完""后不必逐字地输入文件名,按下TAB后,就会自动筛选出可选文件,选中需要文件即可)
在教学视频里,运行这一语句可以直接看到数据;但在我的Rstudio中不行,不知道为毛。我只能通过双击csv文件才能查看。经过论坛上他人的帮助,有了解决办法了: (1)在dat &- read.csv("femaleMiceWeights.csv")下面再执行一次dat,就会在控制台上输出数据;(2)执行了dat &- read.csv("femaleMiceWeights.csv")后,环境窗口会出现一个dat的数据集,直接点开即可看到数据;(3)执行View(dat),即可在资源窗口中自动加载一个页面显示数据——
(4)再加一个括号,即(dat &- read.csv("femaleMiceWeights.csv")); 作业中所涉及语句 tab=read.csv("csv文件名")——将数据赋值给变量tab class(tab)——查看对象的数据类型。常见的数据类型有"numeric","logical","character", "list",但是 "matrix","array","factor" 和 "data.frame" 就可能是其他值。 输出结果为[1] "data.frame" head(tab)——返回数据的前首部值。csv数据默认有一个header(即header=TRUE)。在本例中head()函数将取数据的前6行,并将数据的前6列和后面几列分隔开来。
colnames(tab)——返回给定条件数据的列名称。R中的解释如下:
输入tab$后,再按tap,可显示出所有筛选的列名,选中一个执行,即显示出该列的所有数据。 plot(tab$brainwt, tab$sleep_total)——画以brainwt为横坐标,sleep_total为纵坐标的散点图
plot(tab$brainwt, tab$sleep_total, log="x")——与上面的区别是横坐标进行了对数处理
c(tab$sleep_total, 1000)——在sleep_total向量的末尾加上1000这个元素
cumsum(tab$sleep_total)——依次累加sleep_total向量元素的值
quantile(tab$sleep_total)——求sleep_total向量元素的四分位点
tab[ c(1,2), ]——返回tab数据集的前2行作一个子集,c(1,2)后面还有一个,表示返回所有的列
(注意,1是表示第1行,2是表示第2行,这两行交错列出了) tab[ tab$sleep_total & 18, ]——返回sleep_total大于18的所有行所有列的子集
tab$sleep_total[ c(1,2) ]——提取sleep_total向量中前两行的元素 mean(tab$sleep_total[c(tab$sleep_total & 18)])——返回sleep_total向量中大于18的所有元素的平均值。注意比较上面几个函数,tab[ c(1,2), ]返回的是子集,tab$sleep_total[ c(1,2) ]返回的是元素。这里要用mean()函数求元素的均值,故mean()函数内部应该采用tab$sleep_total以选中sleep_total这一向量,然后再用[]加限定条件,最后不加,是表示选中所有满足条件的行。即tab是数据集合(矩阵),而tab$sleep_total是向量。 which(tab$sleep_total & 18)——返回sleep_total元素值大于18的行数。注意which()函数返回的是数字索引值(numeric index)。可以与前面的函数对应。
tab$sleep_total[ which(tab$sleep_total & 18)[1] ]——返回sleep_total向量中元素大于18的第1个元素的值。这个函数跟上面那个比起来,后面多了个[1],表示选取第1个元素(上面一共筛选出4个,第1个元素即是22行的元素),因而返回第22行的sleep_total值。 which(tab$sleep_total&18 & tab$sleep_rem&3)——返回sleep_total向量中大于18且sleep_rem向量中小于3的元素的行数。注意这里面的参数涵盖了两件条件,用&符号做了并列连接。
sort(tab$sleep_total)——将sleep_total向量中的元素排序。sort()函数默认按递增顺序排序。
order(tab$sleep_total)——返回sleep_total向量中元素按递增顺序排序时的行数。order()函数与sort()函数相同点都是默认将元素按递增顺序排列,不同点是sort()函数返回的是元素值,order()函数返回的是索引值。
rank(c(1,2,2,3))——返回向量中各元素的排名名次,默认仍是按递增的顺序。出现了.5是表示并列的意思。rank()函数不能直接以元素作参数,所以这里需要用c()来构建向量。
match(c("Cow","Owl monkey","Cheetah"), tab$name)——返回tab$name向量中元素"Cow","Owl monkey","Cheetah"的行数。 idx = match(c("Cow","Owl monkey","Cheetah"), tab$name)tab[idx,]——这两行指令反映一种抽取子集的方法。先用match()函数取第5,2,1行构成向量idx,再用tab[idx,]表示取第5,2,1行所有列的元素构成的子集。
vec = c("red","blue","red","green","green","yellow","orange")fac = factor(vec)faclevels(fac)——这几句涉及到两个函数。factor()函数是将向量(可以理解成有向直线)中的元素编码成因子(可以理解成散点),统计学意义上的因子表示符号、编号或等级(如果将数字转化成因子,则就不具备运算属性);因子有水平,执行factor()函数后会自动显示各水平值;用level()函数也可以显示因子的水平值。注意默认情况下,因子的水平是有序排列的。
table(tab$order)——返回向量order各元素值重复出现的次数。
s = split(tab$sleep_total, tab$order)s——将order向量拆分,并返回各元素对应的sleep_total值(有序排列)。注意这两个参数的顺序,前面那个是因子,后面那个是拆分的向量。
如果把这两个参数顺序颠倒,则呈这样的结果: 因为涉及到的order元素比较多,在没有命令因子的情况下,默认选取第一个查到的水平作名称。 s[[17]]——返回被拆分后的s的第17个向量元素。s[["Rodentia"]]——返回被拆分后的s的名为"Rodentia"的向量元素。注意这两个指令必须用双中括号[[]]。
lapply(s, mean)——将s中各向量的元素求均值返回。lappy()呈一列返回。 sapply(s,mean)——将s中各向量的元素求均值返回。sapply()以默认的方式返回。
tapply(tab$sleep_total, tab$order, mean)——以sleep_total为因子,将order拆分成一个个行向量,返回各向量元素的均值。虽然返回结果与上面相同,但上面两个函数皆用到s,多步完成;用tapply()函数只需一步即可完成。
Decent notesYou could totally be the teacher assistant =DVery helpful! Thanks a lot!R的日记-R语言常用命令(一)
以下是R编程常用的一些命令(不包括统计分析与作图)。
##################################
##################################
数学运算:
+,-,*,/,^,%%。(加,减,乘,除,乘方,求余。)
比较运算:
&,&,&=,&=,==,!=。(大于,小于,大于等于,小于等于,等于,不等于。)
逻辑运算:
&,|,!。(与,或,非。)
##################################
#初始基本操作
##################################
#获取工作目录。
& setwd("F:/R/myfun")
#设定工作目录为F:/R/myfun。
& help(com)
#获得对命令com的说明。
& example(com)
#命令com的使用实例。
& args(com)
#查看命令com的变量格式。
& library()
#列出已安装的包。
& library(AER) &#或用
& require(AER)
#载入包AER。
& library(help = AER)
#获取包AER的信息。
& detach(package:AER)
#去除载入的包AER。
& search()
#列出已载入的包。
#列出已载入的包中的所有数据集。
& data(package = .packages(all.available =
#列出已安装的包中的所有数据集。
& try(data(package = "AER") )
#列出包AER里的所有数据集。
& data(Affairs, "BankWages")
#读入数据集Affairs和BankWages(这些数据集需已在data()中列出)。
& help(Affairs)
#获取数据集Affairs的信息。
& attach(Affairs)
#贴上数据集Affairs,其作用是可以直接对数据集里的变量进行操作。
& detach(Affairs)
#上述操作的逆操作。
##################################
#对一般对象的基本操作
##################################
&objects()
#列出所有对象。
#查看对象x的模式:空,数值,字符,逻辑,复数,列表,函数(NULL,numeric,character,logical,complex,list,function)。
& class(x)
#查看对象x的类型:除了mode里列出的几种类型外,还有整数,矩阵,因子,阵列,数据框,时间序列(integer,matrix,factor,array,data
frame,ts)等其他类型。mode主要用于区别数据存放的方式,而class是一种更细微的分类方式,比如矩阵,就是一种更“有序”的数据存放方式。此命令比mode常用。
& as.matrix(x)
#把对象x转为矩阵型。
& as.numeric(x)
#把对象x转为数值型。
#查看对象x的结构。str是structure的缩写。
#移除对象x。
& rm(list=ls(all=TRUE))
#移除所有对象。
##################################
#与向量有关的基本操作
##################################
& x = c(1,2,4)
#生成元素依次为1,2,4的向量x,这里的c是concatenate的意思。注意其类型是数值,不是矩阵。
& x = c("a","b","cd")
#生成元素依次为"a","b","cd"的字符向量x。
& x = paste("a","b","cd")
#生成"a b cd"的字符x。
#向量x的第a到b个元素。
#剔除向量x第i个元素所得的向量。
& length(x)
#向量x的长度。
& x = seq(a, b, length = n)
#生成以一个n维数值型向量x,第一个元素为a,最后一个元素为b,中间元素依次等距递增。(假设a&b)
& x = seq(a, b, c)
#生成一个数值型向量x,第一个元素为a,其后元素依次加c,直到最后一个元素加c大于b。(假设a&b)
& x = seq(a)
#从1开始生成一个递增或递减数值型向量x,最后一个元素绝对值为小于等于|a|的最大整数。
#生成一个从a递增(减)到b的数值型向量x。(a和b都是整数)
& x = rep(v, n)
#对向量v进行n次复制生成新的向量x。
& x = rep(v, each = n)
#依次对向量v的每个元素复制n此生成新的向量x。
& x = round(v)
#生成一个向量x,其中每个元素是v对应元素的最近整数。
& order(x)
#获得向量x第i大元素在向量中的位置。
#获得向量x每个元素大小位置。
#对向量x从小到大进行排序。降序:sort(x, decreasing = TRUE)。
& tapply(x,f,g)
#根据因子f对向量x分类执行函数g。
& split(x,f)
#向量x按因子f分类。
#返回向量x的差分向量。
& cumsum(x)
#返回向量x的累加向量。
##################################
#与矩阵有关的基本操作
##################################
& M = matrix(0,c(m,n))
#生成m行n列的0矩阵。
& M = rbind(X,Y)
#按行合并矩阵X和Y形成新矩阵M。(X和Y列数需相同)
& M = cbind(X,Y)
#按列合并矩阵X和Y形成新矩阵M。(X和Y行数需相同)
& colnames(M)
#矩阵M的列名。
& rownames(M)
#矩阵M的行名。
#矩阵M的行数。
#矩阵M的列数。
#矩阵M的对角线元素形成的向量
& M = diag(x)
#生成以向量x为对角线元素,其他位置元素为0的矩阵M。
#矩阵M的维度。
#矩阵M第i行。(数值型)
& M[i,,drop = FALSE]
#矩阵M第i行。(矩阵型)
& M = M[-i,]
#删除矩阵M第i行。
#矩阵M第j列。
#矩阵M第i行j列元素。
#矩阵M的转置。若M为数值型向量,则t(M)为矩阵型行向量。
#矩阵X乘矩阵Y。若Y是数值型的向量,R会自动判断其为行向量还是列向量。若X与Y为维度匹配的数值型向量,则返回的是矩阵型向量的内积。
#数值型向量x与y的外积(矩阵型)。
#矩阵X与矩阵Y的Hadamard乘积。加、减、除、求余的规则和乘相同,即相同位置的元素进行运算。
& eigen(M)$val
& eigen(M)$vec
#求矩阵M的特征值和特征向量。
& solve(M)
#矩阵M求逆。
& solve(A,b)
#求解线性方程Ax=b。
& apply(M, dimcode, f, fargs)
#对矩阵M的行(dimcode=1)或列(dimcode=2)依次进行函数f操作,f的变量(arguments)方正fargs里。
##################################
#与列表有关的基本操作
##################################
& L = list(a = , b = , c = ,...)
#建立列表L。
#返回列表L里的对象a。
& L$a = NULL
#去除列表L里的对象a。
& names(L)
#列出列表L里的对象名。
& unname(L)
#去掉列表L里的对象名。
& lapply(...)
#list apply。功能与apply类似(参考上面的apply),用于列表型数据。
& sapply(...)
#simplified apply。功能与lapply类似,区别在于函数结果的类型不是列表(list)。
##################################
#与数据框有关的基本操作
##################################
#数据框是一种特殊的列表,所以对列表适用的函数往往对数据框也适用。此外,数据框也有矩阵型数据的特征,所以一些适用于矩阵型数据的函数,不如rbind,cbind,apply等也可以作用在数据框上。
& Data = data.frame(...)
#创建数据框Data。
& fix(Data)
#编辑数据框Data。
& head(Data)
#显示数据框Data的前几行。
& attribute(Data)
#列出数据框Data的组成部分。
& names(Data)
#显示数据框Data的变量名。
& row.names(Data)
#显示数据框Data的行名。
& Data$name1
#数据框Data中名为name1的变量。
#数据框Data中第i个变量形成的数据框。
& merge(D1,D2)
#合并数据框D1和D2,需要D1和D2中有至少一个相同的变量。
##################################
#与逻辑型数据有关的基本操作
##################################
& is.data.frame(x)
#判断是否对象x是数据框。类似命令有is.ts(x),is.numeric(x)等。
& all(x&a)
#判断是否对象x的每个元素都大于a。
& any(x&a)
#判断对象x的元素中是否存在一个大于a。
#判断x的每个元素是否大于y的每个元素。
#向量x中大于a的元素组成的新向量。
& subset(x, x&a)
#向量x中大于a的元素组成的新向量。与上面例子的区别在于若向量元素里有NA,上面的例子会保留在结果中,而subset命令会剔除掉。
& which(x, x&a)
#返回向量中大于a的元素的位置。
& x = ifelse(b, u, v)
#生成一个与b(逻辑向量)维度相同的数值向量,若b[i]为TRUE,则x[i]为u,反之为v。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。R中如何读取数据
对于在文件读取和写入的工作,R使用工作目录来完成。可以使用命
令getwd() (获得工作目录)来找到目录,使用命令setwd("C:/data") 或
者setwd("/home/paradis/R") 来改变目录。如果一个文件不在工作目录里
则必须给出它的路径8。
R可以用下面的函数读取存储在文本文件(ASCII)中的数据:read.table
(其中有若干参数,见后文),scan和read.fwf。R也可以读取以其他格式的
文件(Excel, SAS, SPSS, . . . ) 和访问SQL类型的数据库,但是基础包中并不
包含所需的这些函数。这些功能函数对于R的高级应用是十分有用的,但是我
们在这里将读取文件限定在ASCII格式。
函数read.table用来创建一个数据框,所以它是读取表格形式的数据的
主要方法。举例来说,对于一个名为data.dat的文件,命令:
& mydata &-
read.table("data.dat")
将创建一个数据框名为mydata,数据框中每个变量也都将被命名,
缺省值为V1, V2, . . . 并且可以单独地访问每个变量,
代码为:mydata$V1,mydata$V2, . . . , 或者用mydata["V1"], mydata["V2"],
或者还有一种方法,mydata[, 1], mydata[,2 ], . . . 9
这里有一些选项的缺省值(即如果用户不设定那么R将自动使用的值)见于下表:
read.table(file, header = FALSE, sep = "", quote = "\"'", dec =
".",row.names, col.names, as.is = FALSE, na.strings =
"NA",colClasses = NA, nrows = -1,skip = 0, check.names = TRUE,
fill=! blank.lines.skip,strip.white = FALSE, blank.lines.skip =
TRUE,comment.char = "#")
file 文件名(包在""内,或使用一个字符型变量),可能需要全路径(注意即使是在Windows下,符号n
也不允许包含在内,必须用/替
换),或者一个URL链接()(用URL对文件远程访问)
header 一个逻辑值(FALSE or TRUE),用来反映这个文件的第一行是否包含
sep 文件中的字段分离符,例如对用制表符分隔的文件使用sep="nt"
quote 指定用于包围字符型数据的字符
dec 用来表示小数点的字符
row.names 保存着行名的向量,或文件中一个变量的序号或名字,缺省时行号取
为1, 2, 3, . . .
col.names 指定列名的字符型向量(缺省值是:V1, V2, V3, . . . )
as.is 控制是否将字符型变量转化为因子型变量(如果值为FALSE),或者仍
将其保留为字符型(TRUE)。as.is可以是逻辑型,数值型或者字符
型向量,用来判断变量是否被保留为字符。
na.strings 代表缺失数据的值(转化为NA)
colClasses 指定各列的数据类型的一个字符型向量
nrows 可以读取的最大行数(忽略负值)
skip 在读取数据前跳过的行数
check.names 如果为TRUE,则检查变量名是否在R中有效
fill 如果为TRUE且非所有的行中变量数目相同,则用空白填补
strip.white 在sep已指定的情况下,如果为TRUE,则删除字符型变量前后多余的
blank.lines.skip 如果为TRUE,忽略空白行
comment.char 一个字符用来在数据文件中写注释,以这个字符开头的行将被忽略
(要禁用这个参数,可使用comment.char = "")
read.table的几个变种因为使用了不同的缺省值可以用在几种不同情况
read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".",
fill = TRUE, ...)
read.csv2(file, header = TRUE, sep = ";", quote="\"",
fill = TRUE, ...)
read.delim(file, header = TRUE, sep = "\t", quote="\"",
fill = TRUE, ...)
read.delim2(file, header = TRUE, sep = "\t", quote="\"",
fill = TRUE, ...)
函数scan比read.table要更加灵活,它们的区别之一是前者可以指定变
量的类型,例如:
& mydata &- scan("data.dat", what =
list("", 0, 0))
读取了文件data.dat中三个变量,第一个是字符型变量,后两个是数值
型变量。另一个重要的区别在于scan()可以用来创建不同的对象,向量,矩
阵,数据框,列表. . . 在上面的例子中,mydata是一个有三个向量的列表。
在缺省情况下,也就是说,如果what被省略,scan()将创建一个数值型向
量。如果读取的数据类型与缺省类型或指定类型不符,则将返回一个错误信
息。这些选项在下面进行说明。
scan(file = "", what = double(0), nmax = -1, n = -1, sep =
quote = if (sep=="\n") "" else "'\"", dec = ".",
skip = 0, nlines = 0, na.strings = "NA",
flush = FALSE, fill = FALSE, strip.white = FALSE, quiet =
blank.lines.skip = TRUE, multi.line = TRUE, comment.char =
file 文件名(在""之内), 可能包含它的路径(符号n 不允许使用,必须用/替代, 即使是在Windows下面) ,
或者使用一个URL链接();如果&le="",数据从键盘输入(使用一个空白行终止输入)
what 指定数据的类型(缺省值为数值型)
nmax 要读取数据的最大数量,如果what是一个列表,nmax则是可以读取
的行数(在缺省情况下,scan读取到文件最末端为止的所有数据)
n 要读取数据的最大数量(在缺省情况下,没有限制)
sep 文件中的字段分隔符
quote 用来包围字符型值
dec 用来表示小数点的字符
skip 在读取数据前跳过的行数
nlines 要读取的行数
na.string 表示缺失数据的字符串(转化为为NA)
一个逻辑值,如果为TRUE,当读取完指定列数后scan将转到下一行(这样就允许用户在数据文件中添加注释,即添加在指定列数之后)
fill 如果为TRUE,且非所有的行中变量数目相同,则用空白填补
strip.white 在sep已指定的情况下,如果为TRUE,则删除字符型变量前后多余的空格
quiet 一个逻辑值,如果为FALSE,scan显示一行信息说明哪些字段被读取
blank.lines.skip 如果为TRUE,忽略空白行
multi.line 当what是一个列表时,若为FALSE则表示列表中每个个体的所有变量都在同一行中
comment.char 指定注释开始字符,一行中以这个字符开头的部分将被忽略(缺是禁用此选项)
函数read.fwf可以用来读取文件中一些固定宽度格式的数据:
read.fwf(file, widths, sep="\t", as.is = FALSE,skip = 0, row.names,
col.names, n = -1, ...)
除了widths用来说明读取字段的宽度外,
选项与read.table()基本相同。举例来说,如果在一个名为data.txt的文件中有一组如右所示的数据,可以读取这些数据用下面的命令:
& mydata &- read.fwf("data.txt",
widths=c(1, 4, 3))
1 A 1.50 1.2
2 A 1.55 1.3
3 B 1.60 1.4
4 B 1.65 1.5
5 C 1.70 1.6
6 C 1.75 1.7
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。R语言基本操作函数(1)变量的基本操作 - Martin-9 - 博客园
随笔 - 49, 文章 - 0, 评论 - 0, 引用 - 0
1.变量变换
#转换变量类型;使用如下命令可得到全部列表,methods(as)
as.array(x)
as.data.frame(x)
as.numeric(x)
as.logical(x)
as.complex(x)
as.character(x)
factor()#:将一个向量转化为一个因子
2.变量信息
#检验变量的类型;使用如下命令得到全部列表,methods(is)
is.null(x)
is.array(x)
is.data.frame(x)
is.numeric(x)
is.complex(x)
is.character (x)
length(x)#:x中元素的个数
dim(x)#:查看变量的维数;重新设置的维数,例如dim(x)=c(3,2)
dimnames(x)#:重新设置对象的名称
nrow(x)#:行的个数
ncol(x)#:列的个数
class(x)#:得到或设置x的类;class(x)&-c(3,2)
unclass(x)#删除x的类
attr(x,which)#:得到或设置x的属性which
attributes(obj)#:得到或设置obj的属性列表
#:对数据框数据进行表格形式的编辑
3.数据选取和操作
which.max(x) #:返回x中最大元素的指标
which.min(x) #:返回x中最小元素的指标
rev(x) #:翻转x中所有的元素
sort(x) #:升序排列x中的元素;降序排列使用:rev(sort(x))
cut(x,breaks) #:将x分割成为几段(或因子);breaks为段数或分割点向量
match(x,y) #:返回一个和x长度相同且和y中元素相等的向量不等则返回NA
which(x==a) #:如果比较操作为真(TRUE),返回向量x的指针
choose(n,k) #:组合数的计算
na.omit(x) #:去除缺失值(NA)(去除相关行如果x为矩阵或数据框)
na.fail(x) #:返回错误信息,如果x包含至少一个NA
unique(x) #:如果x为向量或数据框,返回唯一值
table(x) #:返回一个由x不同值个数组成的表格(通常用于整数或因子),即频数表
subset(x,...) #:根据条件(...选取x中元素,如x$V1&10);如果x为数据框,选项select使用负号给出保留 或去除的变量 subset(x, subset, select, drop = FALSE, ...)
sample(x,size) #:不放回的随即在向量x中抽取size个元素,选项replace=TRUE允许放回抽取
prop.table(x,margin=) #:根据margin使用分数表示表格,wumargin时,所有元素和为1
* R数据的创建与索引** 向量的操作*** 向量的创建**** c(...)为concatenate的缩写;常见的将一系列参数转化为向量的函数,通过recursive=TRUE降序排列列表并组合所有的元素为向量*** from:to产生一个序列":"有较高的优先级;1:4+1得到"2,3,4,5"*** seq() 产生一个向量序列
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),length.out = NULL, along.with = NULL, ...)
&&&&&&&&其中length.out可简写为len。*** rep() 重复一个对象&&&&&&&&rep(x,times):x是要重复的对象(例如向量c(1,2,3)),times为对象中每个元素重复的次数(如times=c(9,7,3)就是将x向量的1重复9次,2重复7次,3重复3次)。&&&&&&&&除了上述主要的用法之外,还有一种特殊的用法:rep(x,times)重复x
times次;使用each=来重复x元素each次;rep(c(1,2,3),2)得到1 2 3 1 2 3;rep(c(1,2,3),each=2)得到1 1 2 2 3 3。*** 利用向量的索引实现定义分段函数&&&&&&&&利用改变部分元素值的技术与逻辑值下标结合,可以定义向量的分段函数,例如,要定义&&&&&&&&&可以用如下的语句去实现:
x = c(-2.3,4,-5,7);
y = numeric(length(x));
y[x&0] = 1 - x[x&0];
y[x&0] = 1 - x[x&0];
[1] 3.3 -3.0 6.0 -6.0
4.1.数组(包含矩阵、向量)创建
c(...)常见的将一系列参数转化为向量的函数,通过recursive=TRUE降序排列列表并组合所有的元素为向量from:to产生一个序列":"有较高的优先级;1:4+1得到"2,3,4,5"seq() 产生一个向量序列
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),length.out = NULL, along.with = NULL, ...)
&&&&&&&&其中length.out可简写为len。rep() 重复一个对象&&&&&&&&rep(x,times):x是要重复的对象(例如向量c(1,2,3)),times为对象中每个元素重复的次数(如times=c(9,7,3)就是将x向量的1重复9次,2重复7次,3重复3次)。&&&&&&&&除了上述主要的用法之外,还有一种特殊的用法:rep(x,times)重复x
times次;使用each=来重复x元素each次;rep(c(1,2,3),2)得到1 2 3 1 2 3;rep(c(1,2,3),each=2)得到1 1 2 2 3 3。matrix(...)创立矩阵
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)array(x,dim=...)产生由x组成的数组;使用类似dim=c(3,4,2)指定维数;如果x长度不够,则x自动循环data.frame(...)创建数据框,变量可能被命名或未被命名
data.frame(v=1:4,ch=c("a","b","c","d"),n=10);
相对短的向量会被填充到最大向量长度。 注意数据框中各个属性的元素个数必须相同list(...)创建一个由变量组成的列表,变量可能被命名;
list(a=c(1,2),b="hi",c=3i)
factor(x,levels=) #把向量x编码称为因子
factor(x = character(), levels, labels = levels,exclude = NA, ordered = is.ordered(x))
gl() #产生因子变量
gl(n,k,lenth=n*k,labels=)
通过指定水平方式产生水平因子;k为水平的个数,n为重复的次数rbind() cbind()&&&&&&&&rbind(...)以行的形式组合矩阵,数据框,或其它&&&&&&&&cbind(...)以列的方式组合,其他同rbind()
数据切割和分离&&&&&&&&向量指标&&&&&&&&&&&&&&&&x[n]:第n个元素&&&&&&&&&&&&&&&&x[-n]:除了第n个元素的x&&&&&&&&&&&&&&&&x[1:n]:前n个元素&&&&&&&&&&&&&&&&x[-(1:n)]:第n+1至最后的元素&&&&&&&&&&&&&&&&x[c(1,4,2)]:指定元素&&&&&&&&&&&&&&&&x["name"]:名为"name"的元素&&&&&&&&&&&&&&&&x[x&3]:所有大于3的元素&&&&&&&&&&&&&&&&x[x&3 & x&5]:区间(3,5)的元素&&&&&&&&&&&&&&&&x[x%in%c("a","and","the")]:给定组中的元素&&&&&&&&列表指标&&&&&&&&&&&&&&&&x[n]:列表显示元素n&&&&&&&&&&&&&&&&x[n]:列表的第n个元素&&&&&&&&&&&&&&&&x["name"]:名为"name"的元素&&&&&&&&&&&&&&&&x$name :同上&&&&&&&&矩阵指标&&&&&&&&&&&&&&&&x[i,j]:下表为(i,j)的元素&&&&&&&&&&&&&&&&x[i,]:第i行&&&&&&&&&&&&&&&&x[,j]:第j列&&&&&&&&&&&&&&&&x[,c(1,3)]:第1和3列&&&&&&&&&&&&&&&&x["name",]:名为"name"的行&&&&&&&&&&&&&&&&x$name :同上&&&&&&&&数据框指标&&&&&&&&&&&&&&&&x["name"]:列明为"name"的列&&&&&&&&&&&&&&&&x$name :同上
4.2.R数学函数
4.2.1.泛用函数apply:&&&&&&&&描述:让不同的函数作用数组array不同的边。&&&&&&&&用法:apply(X, MARGIN, FUN, ...)&&&&&&&&参数描述:&&&&&&&&&&&&&&&&X为一数组array,当然包括矩阵。&&&&&&&&&&&&&&&&MARGIN:为一向量,它指定函数要作用的下标。例如对一个矩阵来说,1代表行,2代表列,而c(1,2)代表行和列。&&&&&&&&&&&&&&&&FUN作用于数组array上的函数。此函数可以是自己编写的。&&&&&&&&&注意:&&&&&&&&&&&&&&&&当X时一个data.frame时,而不是array时,函数apply就会强制性的通过as.matrix或as.array将其转化为maxtrix或array。&&&&&&&&例子:
## Compute row and column sums for a matrix:
x &- cbind(x1 = 3, x2 = c(4:1, 2:5))
col.sums &- apply(x, 2, sum)
row.sums &- apply(x, 1, sum)
4.2.2.基本符号:&&&&&&&&+ :加
&&&&&&&&- :减
&&&&&&&&* :乘
&&&&&&&&/ :除
&&&&&&&&^ :次方
&&&&&&&&%% 表示求余数
&&&&&&&&%/% 表示整除
4.2.3.三角函数与其他基本数学函数
&&&&&&&&sin,&&&&&&&&cos,&&&&&&&&tan,&&&&&&&&asin,&&&&&&&&atan,&&&&&&&&atan2,&&&&&&&&log,&&&&&&&&log10,&&&&&&&&exp,max(x):&&&&&&&&当x为一向量时,返回x中最大的元素。&&&&&&&&当x为矩阵时,返回矩阵中所有元素的最大值。当要返回矩阵x每行或每列的最大值时,可以使用apply函数(apply(X, MARGIN, FUN, ...)),其中MARGIN表示要作用的方式,1代表行,2代表列,c(1,2)代表行和列;例如apply(data,MARGIN=1,max)&&&&&&&&当x为data.frame时,1仍然代表行,2仍然代表列。&&&&&&&&当x为数组array时,1仍然代表行,2仍然代表列,其它更高维数用相应的编号数字来表示,如3就可以代表array的页。&&&&&&&&其它详细情况参考apply函数
min(x)#:返回x中最小的元素,同max
rev(x)# 翻转x中的所有元素
sort(x)# 升序排列x中的元素;降序排列使用rev(sort(x)),要得到排列的小标用order()
choose(n,k)# 组合数计算
which()# 返回满足条件的下表
sample(x,size)# 不放回的随机在向量x中抽取size个元素选项,replace+TRUE允许放回抽样
rank()#:计算向量的秩
range(x)#:返回c(min(x),max(x))
sum(x)#:x中各元素的加和
diff(x)#:向量x的差分
prod(x)#:x中元素的连乘积
mean(x)#:x的均值
median(x)#:x的中位数
quantile(x,probs=)#:满足给定概率的样本分位数(默认为0,0.25,0.75,1)
weight.mean(x,w)#:加权平均,w即为weight,即权值。
rank(x)#:x中元素的秩
var(x)#:向量x的样本方差;如果x是矩阵或数据框,协方差矩阵将被计算
cor(x)#:如果x是矩阵或数据框,相关系数矩阵将被计算
sd(x)#:x的标准差;sd(x)=sqrt(var(x))
var(x,y) or cov(x,y)#:x和y间的协方差;如果x,y为矩阵或数据框,返回x和y各列的协方差
cor(x,y)#:x和y的线性相关系数;或者相关矩阵,如果x和y为矩阵或者数据框
round(x,n)#:x的约数,精确到n位
log(x,base)#:计算x以base为基的对数,默认基为exp(1)
scale(x)#:如果x是一个矩阵,则中心化和标准化数据;若只标准化数据,则使用选项center=FALSE,若只 中心化使用scale=FALSE(默认center=TRUE, scale=TRUE)
pmin(x,y,...)#:x[i],y[i]相比较小者,组成新的向量
pmax(x,y,...)#:x[i],y[i]相比较大者,组成新的向量
Re(x)#:复数的实部
Im(x)#:复数的虚部
abs(x)#:绝对值
Arg(x)#:复数角度(in radians)
Conj(x)#:共轭复数
fft(x)#:数组x的快速傅里叶变换
mvfft(x)#:矩阵x的每一列的傅里叶变换
factorial()#:计算n!
cumsum()#:cumulative sums
cumprod()#:cumulative products
D(expression(exp(x^2)),"x")# :求导
integrate(function(x) x^2,0,1)#:积分
注意:大多数数学函数使用逻辑参数na.rm=FALSE来指定是否移除缺失值(NA)
4.3.R字符操作
paste(...)#:转化为字符后连接向量;seq=为分割界限(一个空格为默认);选择collapse=可以分 割"collapse"结果
substr(x,start,stop)#:提取字符向量的子字段;同样可以赋值,使用substr(x,start,stop)&-value
strsplit(x,split)#:在split的位置分割x,例如:
x&-strsplit("An R matrix corresponds to the mathematical concept"," ");
length(x[1])#; #注意:对象被存放在列表x的第一项中,可以用x[1]提取
grep(pattern,x)#:搜索x中满足pattern条件;参见?regex
gsub(pattern,replacement,x)#:替换满足正则表达式的字段,sub()类似,但只替换第一个出现的字段
tolower(x)#:转化为lowercase
toupper(x)#:转化为uppercase
match(x,table)#:table中匹配x元素位置组成的向量
x%in%table#:table中匹配x元素位置组成的向量,返回值为逻辑值
pmatch(x,table)#:table中部分匹配x元素
nchar(x)#:字符的个数}

我要回帖

更多关于 linux 列出所有命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信