为了账号安全,请及时绑定邮箱和手机立即绑定

R语言基础

  • 数据结构之 日期与时间(Date & Time) - 日期Date:存储为当前时间距离1970年1月1日的天数 - x <- date()类型为character/Sys.date()类型为date - y <- as.Date("年-月-日") - weekdays(x)/months(x)/quarters(x)/Julian(x)距离1970年1月1日的天数 - 日期间可以进行运算 y-x OR as.numeric(y-x) 时间 POSIXct/POSIXlt:距离1970年1月1日的秒数 Sys.time() - POSIXct:整数,常用语存入数据框 - POSIXlt:列表,还包含星期、年、月、日等信息 - x <- Sys.time() p <- as.POSIXlt(x) & as.POSIXct(p) p$sec 有多少秒 - 转换类型 x1 <- "Jan 1, 2016 01:01" strptime(x1,howtosavethedate)=>strptime(x1,"%B %d, %Y %H:%M")
    查看全部
  • > # vectorized > x <-1:5 > y <- 6:10 > x+y [1] 7 9 11 13 15 > x*y [1] 6 14 24 36 50 > x/y [1] 0.1666667 0.2857143 0.3750000 0.4444444 0.5000000 > x <- matrix(1:4,nrow=2,ncol=2) > y <- matrix(req(2,4),nrow=2,ncol=2) Error in matrix(req(2, 4), nrow = 2, ncol = 2) : could not find function "req" > y <- matrix(rep(2,4),nrow=2,ncol=2) > x [,1] [,2] [1,] 1 3 [2,] 2 4 > y [,1] [,2] [1,] 2 2 [2,] 2 2 > x*y [,1] [,2] [1,] 2 6 [2,] 4 8 > x/y [,1] [,2] [1,] 0.5 1.5 [2,] 1.0 2.0 > x %*% y [,1] [,2] [1,] 8 8 [2,] 12 12 >
    查看全部
    2 采集 收起 来源:向量化操作

    2018-03-22

  • 向量化操作:可以作用于向量、矩阵等结构,使得代码简介、易于阅读、效率高。 向量、矩阵之间的加减乘除是依次对应的元素之间做加减乘除。 矩阵之间要进行矩阵乘法:矩阵名1 %*% 矩阵名2 rep(num1,num2) #num1重复num2次
    查看全部
    2 采集 收起 来源:向量化操作

    2017-06-12

  • x[!is.na(x)] #返回不是缺失值的元素 complete.cases() #()内对应的都不是缺失值的才为TRUE,否则返回的向量中都为FALSE library(datasets) #得到R的数据集 head(数据集名称) #返回数据集前六列的数据 可通过g <- complete.cases(数据集名称)返回所有的结果 数据集名[g,][1:10,] #表示不含有缺失值的,所有变量都显示,显示第1到第10行,显示所有列
    查看全部
    2 采集 收起 来源:处理缺失值

    2018-03-22

  • 数据框的子集: 数据框名$列名[编号或c()] #获取数据框中的元素,或者用于矩阵相同的方法获取元素。 通过"数据框名$列名"来返回对应的向量。 which()返回的是判断语句中为真的对应的下标,而不用which()返回的是TRUE和FALSE的向量 subset(要构建子集的变量名,构建子集的条件) #可对应所有类型的数据
    查看全部
    2 采集 收起 来源:数据框的子集

    2018-03-22

  • 日期与时间: -日期:Date,是距离19700101的天数 获取当前系统的时间:date() #是字符型 获得日期类型的数据:Sys.Date() #是Date类型 将字符串转变为Date类型:as.Date("yyyy-mm-dd") 获取星期:weekdays(Date类型变量名字) 获取月份:months(Date类型变量名字) 获取季度:quarters(Date类型变量名字) 获取距离1970-01-01的天数:julian(Date类型变量名字) Date类型之间可以进行运算,相减就是相差的天数,通过as.numeric()来转变为数值类型 -时间:POSIXct/POSIXlt,是距离19700101的秒数 POSIXct:整数,常用于存入数据框 POSIXlt:列表,还包含星期、年、月、日等信息 获取当前系统时间:Sys.time() #是POSIXct类型 通过names(unclass(POSIXlt类型变量名))获取存储的信息。通过"POSIXlt类型变量名$信息"获得,比如p$sec 时间的模式存储strptime 通过as.来进行变量类型转换
    查看全部
  • 数据框:存储表格数据。视为各种元素长度相同的列表,每个元素代表一列数据,每个元素的长度代表行数,元素类型可以不同。相当于表格 创建数据框:数据框名字 <- data.frame(第一列内容id=c(1,2,3,4),第二列内容name=c(1,2,3,4),...,第n列内容) #列名和列的值 查看数据框行数:nrow(数据框名字) 查看数据框列数:ncol(数据框名字) 将数据框转换成矩阵:矩阵名字 <- data.matrix(数据框名字)
    查看全部
  • split #根据因子或者因子列表将向量或其他对象分组 #通常与lapply一起使用 #参数格式:split(向量/列表/数据框,因子/因子列表) x <- c(rnorm(5), runif(5),rnorm(5,1)) f <- gl(3,5) split(x,f) lapply(split(x,f), mean) lapply(split(x,f), sum) head(airquality) split(airquality,airquality$Month)#按照month分组查看 s <- split(airquality,airquality$Month) table(airquality$Month)#查看每个Month下包含的记录数 lapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")]))# 求平均值 sapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")]))#简化显示结果 sapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")],na.rm = T))#处理缺失值
    查看全部
    2 采集 收起 来源:R语言函数 split

    2018-03-22

  • 向量化操作 -可以作用于向量,矩阵等结构,使得代码简洁,易于阅读,效率高 x<-1:5 y<-6:10 x+y x*y x/y //创建两个矩阵 x<-matrix(1:4,nrow=2,ncol=2) y<-matrix(rep(2,4)//把2重复4次,nrow=2,ncol=2) x%*%y //矩阵乘法
    查看全部
    2 采集 收起 来源:向量化操作

    2018-03-22

  • 列表的子集 x <- list(id=1:4, height=170, gender="male") x["id"]#与x[1]等效,返回的是名字和内容 #只返回内容 x[["id"]] x$id x[c(1,3)]#返回指定列 #可以用变量代替引用 y <- "id" x[[y]] #不可以用变量代替引用($) x$id x$y #获取嵌套列表中的元素 x <- list(a=list(1,2,3,4),b=c("Monday","Tuesdat")) x[[1]][[2]]#方法一:连续两个双括号 x[[c(1,3)]]#方法二:一个双括号,里面用c()函数 #不完全匹配 #如果一个不完全匹配有多个成功匹配,返回结果为NULL l <- list(asdfghj=1:10) l$asdfghj l$a l[["a",exact=FALSE]]#双括号关闭精确匹配
    查看全部
    2 采集 收起 来源:列表的子集

    2018-03-22

  • 1.#是注释开始的标记 2.vector向量:支持自动扩容的数组 3.y <- vector("character",10) --- 初始化长度为10的字符串数组 4.x <- 1:4 --- x为1到4,含4个元素的数组 5.x2 <- c(1, 2, 3, 4) --- 用列表方式初始化数组 6.x3 <- c(TRUE, 10, "a") --- 数组元素将被强制转换为同一类型 7.x4 <- c("a", "b", "c") as.numeric(x4) as.logical(x4) as.character(x4) --- 几种常用的强制转换方式(可能报错) 8.names(x1) <- c("a", "b", "c", "d") --- 为x1数组每个角标添加引用
    查看全部
  • #对数据进行排序 #sort返回排好序的内容 #order返回下标 x <- data.frame(v1=1:5, v2=c(10,7,9,6,8), v3=11:15, v4=c(1,1,2,2,1)) x sort(x$v2)#v2列按照升序排列 sort(x$v2,decreasing = T)#v2列按照降序排列 order(x$v2)#返回的不是内容本身,是内容的下标 x[order(x$v2),]#对x数据框按照v2进行排序 x[order(x$v4, x$v2, decreasing = T), ]#将序排列x,先按照v4,次要按照v2
    查看全部
  • #mapply #lapply的多元版本 #lapply(函数/函数名,数据, 函数) a<-list(rep(1,4), rep(2,3), rep(3,2),rep(4,1)) a b<-mapply(rep,1:4,4:1)#等价于上面的list b s <- function(n, mean ,std){ rnorm(n, mean, std) } s(4,0,1) #调用函数s,生成1到4四个元素,其中均值是10,标准差是2 mapply(s, 1:4,10,2) list(s(4,10,1),s(3,10,1),s(2,10,1),s(4,10,1))#这个list的效果跟mapply函数一样
    查看全部
  • #apply #沿着数组的某一维度处理数据 #将函数用于矩阵的行或者列 #一句话就可以完成for/while函数 #apply(数组,维度,函数/函数名) x <- matrix(1:16,4,4) apply(x, 2, mean)#求列的平均 apply(x, 2, sum)#求列和 apply(x, 1, mean)#求行的平均 apply(x, 1, sum)#求行和 x <- matrix(rnorm(100),10,10) apply(x, 1, quantile, probs = c(0.25, 0.75)) x <- array(rnorm(2*3*4),c(2,3,4)) apply(x,c(1,2), mean)
    查看全部
    1 采集 收起 来源:R语言函数 apply

    2018-03-22

  • #lapply函数 #可以循环处理列表中的每一个元素 #lapply(列表,函数/函数名,其他参数) str(lapply) x <- list(a = 1:10, b = c(11,21,31,41,51)) lapply(x,mean) x <- 1:4 lapply(x, runif) lapply(x, runif, min = 0, max = 100) x <- list(a = matrix(1:6,2,3), b = matrix(4:7),2,2) lapply(x, function(m) m[1,]) #sapply #简化结果 #结果列表长度均为1,返回向量 #结果列表元素相同且大于1,返回矩阵 sapply(x,mean)
    查看全部

举报

0/150
提交
取消
课程须知
本课程需要学员提前掌握 安装好R和Rstudio
老师告诉你能学到什么?
1、R语言的数据结构 2、构建数据子集 3、重要函数的使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!