1.head()
head(dataframe)——查看数据集前6行数据
2.dim()
dim(x):查看变量的维数
3.paste() -字符串连接
paste(..., sep = " ", collapse = NULL)
sep:分隔符,默认为空格。
collapse:如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量;如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔。
4.write.table() - 保存数据为文件
write.table (x, file ="", sep ="", row.names =TRUE, col.names =TRUE, quote =TRUE)
x:需要导出的数据
file:导出的文件路径
sep:分隔符,默认为空格(” “),也就是以空格为分割列
row.names:是否导出行序号,默认为TRUE,也就是导出行序号
col.names:是否导出列名,默认为TRUE,也就是导出列名
quote:字符串是否使用引号表示,默认为TRUE,也就是使用引号表示
5.read.table() - 文件中读取数据
read.table()函数是R最基本函数之一,主要用来读取矩形表格数据。
Usage
read.table(file, header = FALSE, sep = "", quote = "\"'",
dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
row.names, col.names, as.is = !stringsAsFactors,
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 = "#",
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors(),
fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
read.csv(file, header = TRUE, sep = ",", quote = "\"",
dec = ".", fill = TRUE, comment.char = "", ...)
read.delim(file, header = TRUE, sep = "\t", quote = "\"",
dec = ".", fill = TRUE, comment.char = "", ...)
Argument | Description |
file | file是一个带分隔符的ASCII文本文件 |
header | 一个表示文件是否在第一行包含了变量的逻辑型变量。如果header设置为TRUE,则要求第一行要比数据列的数量少一列。 |
sep | 分开数据的分隔符。默认sep=""。 |
quote | 用于对有特殊字符的字符串划定接线的字符串,默认值是TRUE(")或单引号 |
dec | 用于指明数据文件中小数的小数点 |
row.names | 保存行名的向量。可以使用此参数以向量的形式给出每行的实际行名。或者要读取的表中包含行名称的列序号或列名字符串。 |
col.names | 指定列名的向量。缺省情况下是又"V"加上列序构成,即V1,V2,V3… |
stringsAsFactors | 逻辑值。控制是否将字符向量转换为因子。 |
check.names | 逻辑值。该参数值设置为TRUE时,数据框中的变量名将会被检查,以确保符在语法上是有效的变量名称。 |
6.download.file()
download.file(url,destfile,method,quiet=FALSE,mode="w",cacheOK=TRUE,extra=getOption("download.file.extra"))
url:字符串,必须http://,https://,ftp://,file://开头
destfile:下载文件的保存地址,默认工作目录,file为保存文件名
method:提供"internal",“wget”,“curl”,“lynx”,“libcurl”,“wininet”.windows上通常internal就能解决大多数的问题,少数搞不定的如Cygwin,gnuwin32用"wget",windows二进制文件用"curl".method对于Mac用户来说是都要设置的."lynx"主要针对historical interest
quiet:TRUE-禁止状态消息,显示进度条
mode:写入文件模式,只能在method="internal"时使用,“w”/“wb”(binary)/“a”(append)/“ab”
cacheOK:是否接受服务器端的缓存值,对http://,https://使用.FALSE-尝试从站点获取副本,而不是从中间缓存中获取
7. commandArgs()函数
commandArgs(trailingOnly = FALSE)
trailingOnly:是否返回R程序自带参数
##test.R
args=commandArgs(T)
print (args[1])##第一个外部参数
print (args[2])##第二个外部参数
##运行脚本:Rscript test.R first second
结果:
[1] "first"
[2] "second"
8. setwd()- 更改当前目录
setwd(dir)
参数 dir 是字符串,目录需要引号。
9. getwd() - 获取当前工作目录
10. apply() - 常用来计算矩阵中行或列的均值、和值的函数
rname = c("one","two","three")
cname = c("first","second")
b <- matrix(1:6,nrow=3, dimnames = list(rname, cname))
apply(b,1,sum)
结果:
one two three
5 7 9
b矩阵:
first second
one 1 4
two 2 5
three 3 6
第一个参数是指要参与计算的矩阵;
第二个参数是指按行计算还是按列计算,1——表示按行计算,2——按列计算;
第三个参数是指具体的运算参数。
11. which()
通过以下常规使用例子理解:
A是nxm的矩阵,B是pxk的矩阵,搜索B中行名和A中行名相同的行,行号记录在向量a中
a<-vector()
for(i in 1:nrow(B))
{
a[i]<-which(colnames(A)==colnames(B)[i])
}
# 新建数组 a=c(1,3,4,5,3,2,5,6,3,2,5,6,7,5,8)
# 取数组a中最大值的下标 which.max(a)
# 取数组a中最小值的下标 which.min(a)
# 取数组a中大于3值的下标 which(a>3)
# 取数组a中等于3值的下标 which(a==3)
12. 矩阵
> mat <- matrix(1:6, nrow=2, dimnames=list(rnames, cnames)) ##通过设定dimnames参数添加行列名
> mat[, 2] ##访问第2列元素
> mat[2, 2] <- 20 ##将第2行第2列元素改为20
> mat[ ,3] <- 10 ##将第3列元素都改为10
> mat[mat<6] <- 7 ##将小于6的元素都改为7
> mat <- mat[-2, ] ##删掉第二行,因为删掉行后自动向上缩进,删除时可以从后往前删
> rbind(mat, c(12, 13, 14)) ##在原矩阵mat后面添加一行
> cbind(mat, c(12, 13, 14)) ##在原矩阵mat后面添加一列
> cbind(v1,v2,v3) ###v1,v2,v3三个向量拼接成矩阵
> dim(mat) ##维度,2行3列
[1] 2 3
> dim(mat)[2] ##取列值
[1] 3
> length(mat) ##元素个数
[1] 6
13. 循环
for (i in 1:100) {
statement
}