R语言自作笔记

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"
  1. 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")
  2. for循环要注意使用:length(x)
  3. 判断某向量中是否存在一个元素 if a %in% c()
  4. 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中)

图片[1]-R语言自作笔记-吃了吃了
图片[2]-R语言自作笔记-吃了吃了

© 版权声明
THE END
喜欢就发表一下看法吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容