R语言玩转数据之数据类型

数据类型

  • 数字
  • 逻辑
  • 文本
# 数值型向量
a<-c(3,2,6,7,9)

# 字符型向量
b<-c("张","王","李","赵","周")

# 逻辑向量
c<-c("T","F","T","F","F")

cat("数值:",a,"\n","字符:",b,"\n","逻辑:",c,"\n")

对象类型

  • 向量(vector)
  • 列表(list)
  • 矩阵(matrix)
  • 数组(array)
  • 因子(factor)
  • 数据框(data.frame)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSnEmExF-1667179904520)(./p.jpg)]

向量

v1<-1:7
v2<-seq(1,7,1)
v3<-rep(1:3,times=3)
v4<-rep(1:3,each=3)
v1;v2;v3;v4

列表

list(name = "张三",sex = "男",work = F,num = rep(1:3,each=3))

矩阵

mat<-matrix(data = 1:9,nrow = 3,ncol = 3,byrow = T)
rownames(mat)<-c("甲","乙","丙")
colnames(mat)<-c("A","B","C")
mat
t(mat)

数组

array(data = c(1:24),dim = c(2,3,4))

因子

x <- c("男", "女", "男", "男",  "女")
sex <- factor(x)
sex

数据框

names<-c("张三","李四","王六")

stat<-c(70,90,76)

math<-c(84,89,79)

data.frame(姓名=names,语文=stat,数学=math)

常用函数

  • 舍入:round(x = pi,digits = 3)digits小数点后保留位数
  • 绝对值:abs(x)
  • 平方根:sqrt(x)
a1<-round(x = pi,digits = 3)
a2<-abs(-1)
a3<-sqrt(4)
cat("a1:",a1,"\n","a2:",a2,"\n","a3:",a3,"\n")
  • 排序函数:
    sort(x)返回排序结果
    rev(x)返回把各元素排列次序反转后的结果
    order(x)返回排序用的下标
x <- c(11,33,22,44,55)
sort(x)

rev(x)

order(x)
  • 统计函数:
    sum(求和)
    mean(求平均值)
    var(求样本方差)
    sd(求样本标准差)
    min(求最小值)
    max(求最大值)
    range(求最小值和最大值)
names<-c("张三","李四","王六","李四")
stat<-c(70,90,76,98)
math<-c(84,89,79,99)
d<-data.frame(姓名=names,语文=stat,数学=math)
sum(d$语文)
mean(d$语文)
var(d$语文)
sd(d$语文)
min(d$语文)
max(d$语文)
range(d$语文)
  • 取子字符串函数:
    substr(x, start, stop)从字符串x中取出从第start个到第stop个的子串
y<-"lkahsdflka"
substr(x = y,start = 2,stop = 4)

时间

  • year()取出年
  • month()取出月份数值
  • mday()取出日数值
  • yday()取出日期在一年中的序号,元旦为1
  • wday()取出日期在一个星期内的序号, 但是一个星期从星期天开始, 星期天为1,星期一为2,星期六为7。
  • hour()取出小时
  • minute()取出分钟
  • second()取出秒
library(lubridate)
t<-now()
year(t)
month(t)
mday(t)
yday(t)
wday(t)
hour(t)
minute(t)
second(t)

自定义函数

fun1 <- function(x){ -x+1 }
fun2 <- function(x){ (x-2)^2 }
fun3<-function(x){ x+1 }
fun1(c(1,2,3,4,5))
fun2(c(1,2,3,4,5))
fun3(c(1,2,3,4,5))

可视化

简单图形

  • cex:字符或者形状大小,表示绘图符号相对于默认大小的缩放倍数。
  • col:颜色
  • pch:点的形状
  • lty:线形
  • lwd:线粗细
  • par:设定图像布局
  • adj:设置文本和标题的对齐方式
  • font:字体
  • las:坐标轴标签样式
data(mtcars)
par(mfrow=c(1,1))
plot(x=mtcars$mpg,y=mtcars$disp,
     type="p",
     main="主标题",
     xlab="x轴",
     ylab="y轴",
     cex=2,
     pch=19,
     col='orange',
     font = 1,
     panel.first = grid(8,8,col='blue',lty=2),family='STKaiti',
     frame.plot = F)
curve(fun1,1,10, xlim = c(-10,15), ylim = c(-10,50),lty=2,col = "blue",axes = F,xlab="",ylab="")
curve(fun1,-10,1,col="blue",add = T)
curve(fun3,-10,1,col = "red",add = T)
curve(fun3,1,10,lty=2,col = "red",add = T)
curve(fun2,-10,1,lty=2,col="black",add = T)
curve(fun2,1,15,col = "black",add = T)
text(c(-5,5,-5,-5),c(10,20,-6,2),c(expression(-x+1), expression((x-2)^2),expression(x+1),"y=1"))
title("2022-Math")
abline(a = 0,b = 0,h = 0,v = 2,lty=2,col="darkgray")
abline(h = 1,col="green",lty = 2)
arrows(0,-11,0,50)
arrows(-11,0,16,0)
text(x = 1,y = 40,"Y")
text(x = 14,y = 2,"X")
text(x = 1,y = -3,"(0,0)")

动态图形

library(pacman)
p_load(echarts4r,tidyverse,dplyr)
柱状图、折线图和面积图
df <- data.frame(
  x = seq(50),
  y = rnorm(50, 10, 3),
  z = rnorm(50, 11, 2),
  w = rnorm(50, 9, 2)
)
df %>% 
  e_charts(x) %>%
  e_bar(y)%>%
  e_line(z) %>% 
  e_area(w) %>% 
  e_title("Line and area charts")%>%
  e_theme("green")
条形图与阶梯图
mtcars %>% 
    rownames_to_column() %>% 
    e_charts(rowname) %>% 
    e_bar(mpg) %>%
    e_labels()%>%
    e_step(drat) %>% 
    e_title("条形图与阶梯图")%>%
    e_theme("dark")
mtcars %>%
  mutate(
    model = row.names(.),
    total = mpg + qsec
  ) %>%
  arrange(desc(total)) %>%
  e_charts(model) %>%
  e_bar(mpg, stack = "grp") %>%
  e_bar(qsec, stack = "grp") %>%
  e_labels()
箱型图
df <- data.frame(
  x = c(1:10, 25),
  y = c(1:10, -6)
)

df %>%
  e_charts() %>%
  e_boxplot(y, outliers = TRUE) %>%
  e_boxplot(x, outliers = TRUE)%>%
  e_labels()
散点图
mtcars %>% 
    rownames_to_column() %>% 
    e_charts(rowname) %>% 
    e_scatter(mpg,drat) %>% 
    e_visual_map(drat,scale = e_scale) %>% 
    e_title("散点图")
mtcars %>% 
    rownames_to_column() %>% 
    e_charts(rowname) %>% 
    e_effect_scatter(mpg,drat) %>% 
    e_visual_map(drat) %>% 
    e_legend(FALSE)
极坐标图
data <- tibble(
    x = seq(50),
    y = rnorm(50,10,3)
)
data %>% 
    e_charts(x) %>% 
    e_polar() %>% 
    e_angle_axis(x) %>% 
    e_radius_axis() %>% 
    e_bar(y,coord_system = "polar")
环状条形图
data %>% 
    e_charts(x) %>% 
    e_polar() %>% 
    e_angle_axis() %>% 
    e_radius_axis(x) %>% 
    e_bar(y,coord_system = "polar")
漏斗图
funne <- data.frame(x = c("View1", "Click1", "Purchase1"), value = c(70, 50, 20))
funne %>%
  e_charts() %>%
  e_funnel(value, x) %>%
  e_title("Funnel")
饼图
mtcars %>% 
    head() %>% 
    rownames_to_column() %>% 
    e_charts(rowname) %>% 
    e_pie(carb) %>% 
    e_title("饼图")
圆圈图
mtcars %>% 
    head() %>% 
    rownames_to_column() %>% 
    e_charts(rowname) %>% 
    e_pie(carb,radius = c('50%','70%')) %>% 
    e_title("圆圈图")
玫瑰图
mtcars %>% 
    head() %>% 
    rownames_to_column() %>% 
    e_charts(rowname) %>% 
    e_pie(hp,roseType = "radius")%>%
    e_labels()
仪表盘
e_charts() %>% 
    e_gauge(75,'阅读进度') %>% 
    e_title('仪表盘')
雷达图
df <- tibble(
    指标 = c('生命','攻击','防御','移速','法力'),
    孙尚香 = c(100,150,70,30,20),
    钟馗   = c(170,120,80,25,100)
)
df %>% 
    e_charts(指标) %>% 
    e_radar(孙尚香,max = 200,name = '孙尚香') %>% 
    e_radar(钟馗, max = 200,name = '钟馗' ) %>% 
    e_tooltip(trigger = 'item')
3D图
v <- LETTERS[1:10]
matrix <- data.frame(
  x = sample(v, 300, replace = TRUE), 
  y = sample(v, 300, replace = TRUE), 
  z = rnorm(300, 10, 1),
  color = rnorm(300, 10, 1),
  size = rnorm(300, 10, 1),
  stringsAsFactors = FALSE
) %>% 
  dplyr::group_by(x, y) %>% 
  dplyr::summarise(
    z = sum(z),
    color = sum(color),
    size = sum(size)
  ) %>% 
  dplyr::ungroup()
matrix %>% 
  e_charts(x) %>% 
  e_scatter_3d(y, z, size, color) %>% 
  e_visual_map(
    size,
    inRange = list(symbolSize = c(1, 30)), # scale size
    dimension = 3 # third dimension 0 = x, y = 1, z = 2, size = 3
  ) %>% 
  e_visual_map(
    color,
    inRange = list(color = c('#bf444c', '#d88273', '#f6efa6')), # scale colors
    dimension = 4, # third dimension 0 = x, y = 1, z = 2, size = 3, color = 4
    bottom = 300 # padding to avoid visual maps overlap
  )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩转数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值