- R中的变量可以有数字、字母、下划线和点;只能以点或者字母开头
查看已经定义的变量可以用ls()
rm(list=ls())
- >cat("a","的大写是","A","\n")
>a 的大写是 A
cat() 函数可以用于拼接,在拼接时自动加上空格
cat(语句,文件路径) 将语句写入到文件中,不会保留原文件内容;
cat(语句,文件路径,append=T) 保留原文件内容
- sink(文件路径,split=T) 将输出保存到文件,控制台同时输出
sink() 无参数的sink,取消输出到文件
- readLines(文件) 读取的文件每一行必须有换行符,否则报错
- getwd()
setwd()
数据类型
- 数值型(numeric)
- 字符型(character)
- 逻辑型(logical)
- 复数型(complex)
- 前端JS(number/string/boolean/undefined/null)
数据对象类型
- 标量(scalar)
- 向量 (vector)只能有一种数据类型
- 因子(factor)只能有一种数据类型
- 矩阵(matrix)只能有一种数据类型
- 数组(array)一个元素中只能有一种数据类型
- 列表(list)允许不同的数据类型
-数据框(dataframe)同一列只能有一种数据类型
- class() 查看逻辑数据类型,数据对象类型?
typeof() 查看物理数据类型,数据类型?
str() 查看数据结构和组织形式
- 单行注释#
多行注释if(F){注释块}
- 整除 %/%
整除求余数 %%
- &对两个向量中的每一个元素进行与判断
| 对两个向量中的每一个元素进行或判断
&& 对两个向量中的第一个元素进行与判断
|| 对两个向量中的第一个元素进行或判断
- <- /= /<<- 向左赋值
-> /->> 向右赋值
- :用于创建数字的向量
%in%判断元素是否在向量中
%*%矩阵与矩阵的转置相乘
- a[1:5] 取出向量a中第一项到第五项
a[c(1,2,3)] 取出第1,2,3项
a[c(-1,-2)] 删除第1,2项
order(a) 返回的是排序之后的下标向量;a[order(a)] 排序后的原始向量
rep(0,5) [1]0 0 0 0 0
NA 代表缺失,没有数据但是有位置,占用内存?
NULL 代表不存在,连内存也不占用?
- which() 返回筛选数据的下标
any() 判断向量c()中是否存在TURE
all() 判断向量中是否全为TRUE
- list() 中下标使用[[ ]]
c() 中下标使用[ ]
生成矩阵 matrix(vextor,2,3,byrow=T) 将向量转换为2行3列的矩阵,且按行填充
apply(matrix,1,sum) 第二个参数为1是按行操作
apply(matrix,2,sum) 第二个参数为2是按列操作
switch(expression,case1,case2...) 如果expression是数字1,则返回case1对应的内容
switch("my name",you="someone",my name="others") 返回"others"
- seq(10,20) 输出10到20的所有数字
mean(15:16) 计算平均数
sum(1:15) 计算数字之和
- 单引号可以包含双引号;双引号可以包含单引号
单引号不能包含单引号;双引号不可以包含双引号
- paste(LETTERS[1:5],1:5,sep="",collapse="_") sep用于连接LETTERS[1:5]与1:5的对应元素,collapse用于连接sep连接好的元素
[1]a1_b2_c3_d4_e5
substring("string",1,5) 截取字符串的第1位到第5位(包含第1位和第5位)
nchar("string") 用于统计字符串的长度
names(list)<-c() 可以给列表中的元素命名
unlist() 转换为向量
matrix(c(1,2,3,4),2,2,byrow=T,dimnames=list(c("aa","bb"),c("cc","dd")) dimnames=list(rownames,colnames)
m-=t(m) 转置
bb<-array(c(vector1,vector2),dim=c(3,3,2),dimnames=list(rownames,colnames,matrixnames))
bb[,,1]获取第一个matrix bb[1,,1]获取第一个matrix的第一行 bb[,1,1]获取第一个matrix的第一列
- factor(c("nan","nan","nv")) 将字符型向量转换为因子类型
- cbind(c(),c(),c()) 将向量拼接为数据框,每个向量是数据框的一列
- merge()左连接 merge(df1,df2,by="",all.x=T)
merge()右连接 merge(df1,df2,by="",all.y=T)
merge()外连接 merge(df1,df2,by="",all=T)
merge()内连接 merge(df1,df2,by="")- .libPaths() 查看R安装的包的位置
library() 查看已经安装的包
search() 查看编译环境已经载入的包- .csv 以逗号为分割
.tsv 以TAB为分割- data.frame取子集 subset(data,列名=="条件"&列名=="条件")
使用subset取子集会保留原来的行索引为x列,使用subset(data,列名=="条件",row.names=F)- 读取EXCEL文件需要R包
install.packages("xlsx", repos ="https://mirrors.ustc.edu.cn/CRAN/")
验证包是否安装any(grepl("xlsx",install.packages()))- 读取XML文件需要R包
install.packages("XML", repos ="https://mirrors.ustc.edu.cn/CRAN/")
读取xml文件result <- xmlParse(file = "sites.xml")
读取xml 文件的某一行用[] 某一行某一列用[[]][[]]
xml转list xmlToList()
xml转data.frame xmlToDataFrame()- 读取JSON文件需要R包
install.packages("rjson", repos="https://mirrors.ustc.edu.cn/CRAN/")
读取json文件result <- fromJSON(file = "sites.json")