R语言-探索两个变量

目的:

  通过探索文件pseudo_facebook.tsv数据来学会两个变量的分析流程

知识点:

  1.ggplot语法

2.如何做散点图

3.如何优化散点图

4.条件均值

5.变量的相关性

6.子集散点图

7.平滑化

简介:

  如果在探索单一变量时,使用直方图来表示该值和整体的关系,那么在探索两个变量的时候,使用散点图会更适合来探索两个变量之间的关系

案例分析:

1.根据年龄和好友数作出散点图

#导入ggplot2绘图包library(ggplot2)
setwd(‘D:/Udacity/数据分析进阶/R‘)#加载数据文件
pf <- read.csv(‘pseudo_facebook.tsv‘,sep=‘\t‘)#使用qplot语法作出散点图
qplot(x=age,y=friend_count,data=pf)#使用ggplot语法作出散点图,此处使用ggplot作图语法上更清晰ggplot(aes(x=age,y=friend_count),data=pf)+ geom_point()

图 2-1

2.过渡绘制,因为图2-1有大部分的点都重叠,不太好区分哪个年龄和好友数的关系,所以使用alpha和geom_jitter来进行调整

#geom_jitter消除重合的点
#alpha=1/20表示20个值算1个点
#xlim(13,90)表示x轴的取值从13,90
ggplot(aes(x=age,y=friend_count),data=pf)+
  geom_jitter(alpha=1/20)+
  xlim(13,90)

图 2-2

3.coord_trans函数的用法,可以给坐标轴上应用函数,使其的可视化效果更好

#给y轴的好友数开根号,使其可视化效果更好
ggplot(aes(x=age,y=friend_count),data=pf)+
  geom_point(alpha=1/20)+
  xlim(13,90)+
  coord_trans(y="sqrt")

图2-3

4.条件均值,根据字段进行分组然后分组进行统计出新的DataFrame

#1.导入dplyr包
#2.使用group_by对年龄字段进行分组
#3.使用summarise统计出平均值和中位数
#4.再使用arrange进行排序
library(‘dplyr‘)
pf.fc_by_age <- pf %>%
  group_by(age) %>%
  summarise(friend_count_mean=mean(friend_count),
            friend_count_media = median(friend_count),
            n=n()) %>%
  arrange(age)

5.将该数据和原始数据进行迭加,根据图形,我们可以得出一个趋势,从13岁-26岁好友数在增加,从26开始慢慢的好友数开始下降

#1.通过限制x,y的值,做出年龄和好友数的散点图
#2.做出中位值的渐近线
#3.做出0.9的渐近线
#4.做出0.5的渐近线
#5.做出0.1的渐近线
ggplot(aes(x=age,y=friend_count),data=pf)+
  geom_point(alpha=1/10,
             position = position_jitter(h=0),
             color=‘orange‘)+
  coord_cartesian(xlim = c(13,90),ylim = c(0,1000))+
  geom_line(stat = ‘summary‘,fun.y=mean)+
  geom_line(stat = ‘summary‘,fun.y=quantile,fun.args=list(probs=.9),
            linetype=2,color=‘blue‘)+
  geom_line(stat=‘summary‘,fun.y=quantile,fun.args=list(probs=.5),
            color=‘green‘)+
  geom_line(stat = ‘summary‘,fun.y=quantile,fun.args=list(probs=.1),
            color=‘blue‘,linetype=2)

图2-4

6.计算相关性

#使用cor.test函数来进行计算,在实际中可以对数据集进行划分#pearson表示两个变量之间的关联强度的参数,越接近1关联性越强
with(pf,cor.test(age,friend_count,method = ‘pearson‘))with(subset(pf,age<=70),cor.test(age,friend_count,method = ‘pearson‘)

7.强相关参数,通过做出www_likes_received和likes_received的散点图来判断两个变量的关联程度,从图中看出两个值的关联性很大

#使用quantile来过限定一些极端值
#通过xlim和ylim实现过滤
#同时增加一条渐近线来查看整体的值
ggplot(aes(x=www_likes_received,y=likes_received),data=pf)+
  geom_point()+
  xlim(0,quantile(pf$www_likes_received,0.95))+
  ylim(0,quantile(pf$likes_received,0.95))+
  geom_smooth(method = ‘lm‘,color=‘red‘)

图2-5

8.通过计算月平均年龄,平均年龄和年龄分布来做出三个有关年龄和好友数关系的折线图

从该图中我们可以发现p1的细节最多,p2展现的是每个年龄段不同的好友数量,p3展示的是年龄和好友数的大体趋势

#
library(gridExtra)
pf$age_with_month <- pf$age + (12-pf$dob_month)/12
pf.fc_by_age_months <- pf %>%
  group_by(age_with_months) %>%
  summarise(friend_count_mean = mean(friend_count),
            friend_count_median = median(friend_count),
            n=n()) %>%
  arrange(age_with_months)
p1 <- ggplot(aes(x=age_with_month,y=friend_count_mean),
       data=subset(pf.fc_by_age_months,age_with_month<71))+
  geom_line()+
  geom_smooth()
p2 <- ggplot(aes(x=age,y=friend_count_mean),
             data=subset(pf.fc_by_age,age<71))+
  geom_line()+
  geom_smooth()
p3 <- ggplot(aes(x=round(age/5)*5,y=friend_count),
             data=subset(pf,age<71))+
  geom_line(stat = ‘summary‘,fun.y=mean)

grid.arrange(p1,p2,p3,ncol=1)

习题:

原文地址:http://www.cnblogs.com/luhuajun/p/8110250.html

时间: 2024-10-06 15:39:08

R语言-探索两个变量的相关文章

R 学习笔记《六》 R语言初学者指南--访问变量、处理数据子集

注意:关闭R之前务必保存工作空间,保证学习的连续性.这样以前数据的控制台命令执行的效果以及相关变量仍然保存在内存中. 1 访问数据框变量 建议:在read.table命令执行names查看要处理的变量 names(Squid) [1] "Sample" "Year" "Month" "Location" "Sex" "GSI" 1.1 str函数 str函数可以查看数据框中每个变量的属性

R语言中两个数组(或向量)的外积怎样计算

所谓数组(或向量)a和b的外积,指的是a的每个元素和b的每个元素搭配在一起相乘得到的新元素.当然运算规则也可自己定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).比如: > a <- 1:2 > b <- 3:5 > d <- a %o% b > d [,1] [,2] [,3] [1,] 3 4 5 [2,] 6 8 10 注意维数公式为: dim(d) = c( dim(a) , dim(b) ) 实际上R语言提供了一个更为一般化得外积函数o

R语言中两个数组(或向量)的外积如何计算

所谓数组(或向量)a和b的外积,指的是a的每一个元素和b的每一个元素搭配在一起相乘得到的新元素.当然运算规则也可自定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).例如: > a <- 1:2 > b <- 3:5 > d <- a %o% b > d [,1] [,2] [,3] [1,] 3 4 5 [2,] 6 8 10 注意维数公式为: dim(d) = c( dim(a) , dim(b) ) 实际上R语言提供了一个更为一般化得外积函数

R语言实现两文件对应行列字符替换

假设存在文件file1.xlsx,其内容如下: 存在文件file2.xlsx,其内容如下: 现在我想从第七列开始,将file2所有的字符替换成file1一样的,即第七.八.九.十列不需要改变,因为file1和file2的字符一致的(3和1,2和4):从第11列开始,file1和file2的字符不一样了.我的命名规则是从第11列开始,file2的2改为3,4改1,3改为2,1改为4: 下面是代码的实现过程: install.packages("openxlsx") #安装openxlsx

利用R语言+逻辑回归实现自动化运营

摘要 逻辑回归是最常见的二分类算法之一,由于是有监督学习,训练阶段需要输入标签,而同时在变量较多的情况下,需要先经过一些降维处理,本文主要讲解如果通过R语言来自动化实现变量的降维以及变量转换,训练,测试,覆盖率以及准确度效果评估,以及生成最终评分配置表,而在标签与训练数据在可以自动化生成的情况下,配置表是能自动生成的.其中每个步骤都有详细的实现代码. 主要步骤 实现细节 1.生成训练数据 如类似下面的格式 lable var1 var2 var3 var4 var5 var6 var7 var8

约翰霍普金斯大学数据科学系列课程——R语言:数据类型

1.原子对象 R语言有5类最基本的原子对象: 1)  字符型character 字符型对象用" "包括. 2)  数值型numeric(real numbers) 数字对象在R中默认为数值型(numeric),如果你需要指定一个数据为整数型,需要在改数字后加上L.如:数字123默认为numeric型,如果需要其为integer型,可表示为123L. 3)  整数型integer 4)  复数型complex 复数的实部用实数表示,虚部用实数+i表示.如:3+2i,2+1i等. 5) 

R语言--变量与数据类型

R语言的数据分类 R语言的数据类型较多,但都是动态声明,即变量不会声明为某种数据类型.变量分配为R对象 向量 列表 矩阵 数组 数据帧 因子 下面是几种最简单对象的类型 # Atomic vector of type character. print("abc");#character # Atomic vector of type double. print(12.5)#numeric # Atomic vector of type integer. print(63L)#integ

【C语言探索之旅】 第二部分第六课:创建你自己的变量类型

0 内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告: 文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量

C语言中两个相同类型的结构体变量之间是可以相互直接赋值的

C语言中,在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,而两个同类型的结构体变量属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的.所以,在C语言中两个相同类型的结构体变量之间是可以相互赋值的.但是要注意指针的浅层复制问题. 下面是一个简单的验证代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdlib.h> struct test