R语言字母向量:
LETTERS: the 26 upper-case letters of the Roman alphabet;
letters: the 26 lower-case letters of the Roman alphabet;
month.abb: the three-letter abbreviations for the English month names;
month.name: the English names for the months of the year;
pi: the ratio of the circumference of a circle to its diameter.
> e <- LETTERS[seq(,26)]
> e
[] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
- R语言下载函数
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-尝试从站点获取副本,而不是从中间缓存中获取download.file("http://github.com/mgimond/Spatial/raw/master/Data/Income_schooling.zip", destfile = "Income_schooling.zip" , mode='wb') unzip("Income_schooling.zip", exdir = ".") file.remove("Income_schooling.zip")
- for循环要注意使用:length(x)
- 判断某向量中是否存在一个元素 if a %in% c()
- R语言如何删除向量中指定的元素:
例如打算从向量A中删除元素"a",用match()只获得了它第一次出现的索引下标,用which()获得全部"a"的索引下标。> A=c("a","c","e","b","d","a","b","d","f","e","g") > match("a",A) [] > match(c("a"),A) [] > which(A=="a") [] 6
而删除的操作仅需要进行在向量中写入负的索引下标即可,如删除所有的"a":
> B=A[-which(A=="a")] > B [] "c" "e" "b" "d" "b" "d" "f" "e" "g"
如果是想删除多个元素,可以用循环来完成
> C=A > a=c("a","b","g") > for(i in a){C=C[-which(C==i)]} > C [] "c" "e" "d" "d" "f" "e"
6.R语言添加新的列,使用transform函数“`r
frame <- transform(frame,sum=a+b,mean=(a+b)/2) > frame a b sum mean 2 .0 2 3 2 5 2.5 3 5 3 8 4.0
Dyplr包
select() 从数据中选择列
filter() 数据行的子集
group_by() 汇总数据
summarise() 汇总数据(计算汇总统计信息)
arrange() 排序数据
mutate() 创建新变量
dplyr可以方便地抽取数据框的子集。抽取行的子集函数有filter,distinct,sample_frac,sample_n,slice,top_n。抽取列的子集函数是select,可通过列名或选项函数进行选择
filter()函数只能将指定条件的观测筛选出来,并不能筛选出只关心的变量,为了弥补这个缺陷,可以使用select()函数筛选指定的变量,而且比subset()函数更灵活,而且选择变量的同时也可以重新命名变量。如果剔除某些变量的话,只需在变量前加上负号“-”。之所以说他比subset()函数灵活,是因为可以在select()函数传递如下参数:
starts_with(x, ignor.case = TRUE)#选择以字符x开头的变量
ends_with(x, ignor.case = TRUE)#选择以字符x结尾的变量
contains(x, ignor.case = TRUE)#选择所有包含x的变量
matches(x, ignor.case = TRUE)#选择匹配正则表达式的变量
num_range('x', :5, width = 2)#选择x0到x05的变量
one_of('x','y','z')#选择包含在声明变量中的
everything()#选择所有变量,一般调整数据集中变量顺序时使用
通过mulate()函数可以在原始数据集的基础上扩展新变量,类似于transform()函数,语法如下:
mutate(.data, …)
例子:
mutate(df2tbl, z = y^2 + y – 0)
同样可以进行数据扩展的还有transmute()函数,与mutate()函数不同的是,该函数扩展新变量的同时,将删除所有原始变量。
相关延展函数:transmute、mutate_all、mutate_if、mutate_at
mutate_all()——应用函数到所有列
将所有列转化为小写:
msleep %>%
mutate_all(tolower)
mutate_if()——应用函数到满足条件的列
将所有 Double 型的列,转化为 Integer:
iris %>%
mutate_if(is.double, as.integer)
使用 as.numeric 转为数字型时建议加上as.character
R语言中插入元素使用的是append()方法
a <- c(:0)
> append(x = a, , after = 5)
[] 2 3 4 5 6 7 8 9 0
assign函数是将数值赋值给保存在字符串变量中的变量名
lapply是用于把指定的待应用的函数应用于列表的每一个元素,并返回列表结构的输出
#应用lapply
exp = lapply(mylist, median)#median为我们将应用的函数,可以换成自己的函数
eval()可以把字符串转化成表达式来执行。
eval和parse结合使用,参数 text 等于要转化的字符串。
eval(parse(text ='LAB_Bm' ))
cat()函数向控制台输出打印内容,函数没有返回值(=返回值为NULL);而print()函数在控制台输出打印的内容,同时返回输出内容。
有以下两个案例可以帮助理解他们之间的差异:
e的x次方exp(x)
mutate还有三个衍生函数:
mutate_at(); mutate_if(); mutate_all()
在官网上的关于这三个后缀的解释如下:
_all: affects every variable
_at: affects variables selected with a character vector or vars()
_if : affects variables selected with a predicate function:
其中,all是针对所有列,at是针对特定的列,if的满足特定条件的列
参数如下:
mutate_all(.tbl, .funs, …)
mutate_if(.tbl, .predicate, .funs, …)
mutate_at(.tbl, .vars, .funs, …, .cols = NULL)
数据聚合
使用summarize()函数实现数据集聚合操作
min():返回最小值
max():返回最大值
mean():返回均值
sum():返回总和
sd():返回标准差
median():返回中位数
IQR():返回四分位极差
n():返回观测个数
n_distinct():返回不同的观测个数
first():返回第一个观测
last():返回最后一个观测
nth():返回n个观测
inner_join#內连
left_join#左连
right_join#右连
full_join#全连
semi_join#返回能够与y表匹配的x表所有记录
anti_join#返回无法与y表匹配的x表的所记录
intersect(x, y): x 和 y 的交集(按行)
union(x, y): x 和 y 的并集(按行)
setdiff(x, y): x 和 y 的补集 (在x中不在y中)
暂无评论内容