R语言入门第三集 实验二:基本数据处理



一、资源

【R语言】R语言数据处理——东北大学大数据班R实训第二次作业



二、答案更新纠正

  1. 2.11.从df中选取date 、 item_id 、 cate_id 、 cart_uv 、 recode、 collect_uv 和cart_ipv字段另存为df11;
    剔除df11中的cart_ipv字段另存为df2;
    从df11中选取item_id 大于500的并且recode为less的数据另存为df3。

    答案:

    df11<-df[c("date","item_id","cate_id","cart_uv","recode","collect_uv","cart_ipv")]
    df2<-df11[!names(df11)%in%c("cart_ipv")]

    应该为:

    2.1从df中选取date 、 item_id 、cate_id 、cart_uv 、recode、collect_uv 和cart_ipv字段另存为df1;剔除df1中的cart_ipv字段另存为df2;从df1中选取item_id 大于500的并且recode为less的数据另存为df3。

    df1<-df[c("date","item_id","cate_id","cart_uv","recode","collect_uv","cart_ipv")]
    df2<-df1[!names(df1)%in%c("cart_ipv")]
    df3<-df1[df1$item_id>500 &df1$recode=="less",]
  2. 2.4从df11中选取列从item_id到cate_id的数据,另存为df1_temp,然后与df4按照item_id合并存为df5。

    答案:

    df1_temp<-df11[c("item_id","cate_id")]
    df5<-merge(df1_temp,df4,by="item_id")
    # merge参数位置调换,增加的新变量名字不同,cate_id.x,cate_id.y
    # df55<-merge(df4,df1_temp,by="item_id")
    dim(df1_temp)
    dim(df4)
    dim(df5)

    应该为:

    2.4从df1中选取列从item_id到cate_id的数据,另存为df1_temp,然后与df按照item_id合并存为df5。

    df1_temp<-df1[c("item_id","cate_id")]
    df5<-merge(df1_temp,df,by="item_id")
  3. 2.5从df11中利用sql的方法选取item_id为300的数据,另存为df6中。【注:sqldf包】

    答案:

    # install.packages("sqldf")
    library(sqldf)
    df6 <- sqldf("select * from df11 where  item_id=300")
    head(df6)

    应该为:

    2.5从df1中利用sql的方法选取item_id为300的数据,另存为df6中。【注:sqldf包】

    install.packages("sqldf")
    df6 <- sqldf("select * from df1 where  item_id=300")
  4. 2.6从df2中有放回的随机取出与df6一样多的数据条数做为df_temp,然后与df6按列(横
    向)合并,另存为df7。

    答案:

    df_temp<-df2[sample(1:nrow(df2),nrow(df6),replace = TRUE),]
    dim(df_temp)
    dim(df6)
    df7<-cbind(df_temp,df6)
    dim(df7)

    应该为:

    2.6从df2中有放回的随机取出与df6一样多的数据条数做为df_tem,然后与df6按列(横向)合并,另存为df7。

    df_temp<-df2[sample(1:nrow(df2),nrow(df6),replace = TRUE),]
    df7<-cbind(df_temp,df6)
    
  5. 2.7从df中选取 date 、 item_id 、 cate_id 和cart_ipv 另存为feature,并将feature 按日
    期升序排列,取出feature 中唯一的cate_id 【去重即可】。

    答案:

    feature<-df[c("date","item_id","cate_id","cart_ipv")]
    feature<-df[order(df$date),]
    unique(feature$cate_id)

    应该为:

    2.7从df中选取date、item_id、cate_id和cart_ipv另存为feature,并将feature按日期升序排列,取出feature 中唯一的cate_id【去重即可】

    feature<df[c("date","item_id","cate_id","cart_ipv")]
    feature<-feature[order(feature$date),]
    unique(feature$cate_id)
    


三、答案

实验二 基本数据处理

题目1:
1.1将item_feature1.csv读入,存储到df中;并给df的列分别命名为:date 、item_id 、cate_id 、cate_level_id 、brand_id 、supplier_id 、pv_ipv 、cart_uv 、collect_uv 和cart_ipv 。注:【日期、商品id、仓库id、仓库级别id、品牌id、供应商id、浏览次数、加购人次、收藏人次和被加购次数】

df <- read.csv("item_feature1.csv")
names(df)
names(df)[1:10] <-c("date" ,"item_id" ,"cate_id" ,"cate_level_id" ,"brand_id" ,"supplier_id" ,"pv_ipv" ,"cart_uv" ,"collect_uv" ,"cart_ipv")
names(df)

1.2为df中的cart_uv 重新编码并将新变量命名为recode,将小于5000的归为less,将大于等于5000小于15000的归为common,其他的归为many;查看尾部的10条数据。

df$recode[df$cart_uv<5000]<-"less"
df$recode[df$cart_uv>=5000&df$cart_uv<15000]<-"common"
df$recode[df$cart_uv>=15000]<-"many"
tail(df,10)

1.3查看df中是否有缺失值;如有缺失值,删除df中所有含缺失值的行。

sum(rowSums(is.na(df)) > 0)
nrow(df)
df<-na.omit(df)
nrow(df)

1.4将df中的date字段转换成日期类型,如:2015-02-13。

class(df$date)
df$date <- as.character(df$date)
class(df$date)
df$date <- as.Date(df$date, "%Y%m%d")
class(df$date)
head(df$date, 10)

1.5将df按照date字段升序排列,另存为df_asc;并查看前10条数据。

df_asc<-df[order(df$date),]
head(df_asc,10)

1.6将df按照date字段升序和item_id降序排序,另存在df1中;并查看前5条数据。

df1<-df[order(df$date,-df$item_id),]
head(df1)

题目2:
2.1从df中选取date 、 item_id 、cate_id 、cart_uv 、recode、collect_uv 和cart_ipv字段另存为df1;剔除df1中的cart_ipv字段另存为df2;从df1中选取item_id 大于500的并且recode为less的数据另存为df3。

df1<-df[c("date","item_id","cate_id","cart_uv","recode","collect_uv","cart_ipv")]
df2<-df1[!names(df1)%in%c("cart_ipv")]
df3<-df1[df1$item_id>500 & df1$recode=="less",]

2.2从df中选取date为2015-02-14,item_id为300,并保留date到supplier_id其间的所有列,另存为df_sub。

df_sub <-subset(df, date == "2015-02-14" &item_id == 300, select = date:supplier_id)
df_sub

2.3从df中无放回的随机抽取500条样本,另存为df4;查看样本的维度和数据的头部数据。

df4<-df[sample(1:nrow(df),500,replace = FALSE),]
dim(df4)
head(df4)

2.4从df1中选取列从item_id到cate_id的数据,另存为df1_temp,然后与df按照item_id合并存为df5。

df1_temp<-df1[c("item_id","cate_id")]
df5<-merge(df1_temp,df,by="item_id")

2.5从df1中利用sql的方法选取item_id为300的数据,另存为df6中。【注:sqldf包】

install.packages("sqldf")
df6 <- sqldf("select * from df1 where  item_id=300")

2.6从df2中有放回的随机取出与df6一样多的数据条数做为df_tem,然后与df6按列(横向)合并,另存为df7。

df_temp<-df2[sample(1:nrow(df2),nrow(df6),replace = TRUE),]
df7<-cbind(df_temp,df6)

2.7从df中选取date、item_id、cate_id和cart_ipv另存为feature,并将feature按日期升序排列,取出feature 中唯一的cate_id【去重即可】

feature<-df[c("date","item_id","cate_id","cart_ipv")]
feature<-feature[order(feature$date),]
unique(feature$cate_id)

R语言入门第三集 实验二:基本数据处理相关推荐

  1. R语言入门第四集 实验三:数据可视化

    R语言入门第四集 实验三:数据可视化 一.资源 [R语言]R语言数据可视化--东北大学大数据班R实训第三次作业 在r中rowsums_R语言初级教程(15): 矩阵(下篇) R语言环境变量的设置 环境 ...

  2. R语言入门第六集 实验五:综合应用

    R语言入门第六集 实验五:综合应用 一.资源 [R语言]沈阳地铁数据处理及站间流量统计--R语言第五次实训 lubridate-轻松处理日期时间 数据整理-dplyr包(mutate系列) CEILI ...

  3. R语言入门第五集 实验四:数据分析

    R语言入门第五集 实验四:数据分析 一.资源 [R语言]R语言函数练习--东北大学大数据班R实训第四次作业 R语言:常用apply函数(apply,tapply,sapply,lapply)用法介绍 ...

  4. LaTeX入门第三集!LaTeX的几个应用!

    LaTeX入门第三集!LaTeX的几个应用! 一.制作PPT Ctex+Texstudio beamer 制作slide(ppt)安装 二.画图 一般人们并不直接使用PGF底层命令,而是通过它前端Ti ...

  5. Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64.rpm官方资源分享!Linux安装JDK8教程!

    Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64.rpm官方资源分享!Linux安装JDK8教程! 提取码均为0916 jdk-8u301-linux-x ...

  6. Linux入门第四集!Jar包的入门、使用、部署!怎么打Jar包?

    Linux入门第四集!Jar包的入门.使用.部署!怎么打Jar包? 一.首先要确保JDK8已经安装成功 Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64. ...

  7. Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享!

    Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享! 一.Mysql的Linux版本下载! 博主采用的是mysql-8.0.25-1.el7.x86_64.rpm- ...

  8. 【R语言】第二章上机实验记录

    书籍:<R语言与数据挖掘> 1. 实验目的 了解R语言中数据类型的判别及转换函数.应用方法 了解R语言中对数据结构操作的函数.应用方法 了解R语言中读写数据文件的方法 2.实验内容 掌握读 ...

  9. c语言程序设计编程解读,C语言程序设计第三次实验报告解读

    <C语言程序设计第三次实验报告解读>由会员分享,可在线阅读,更多相关<C语言程序设计第三次实验报告解读(15页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计实验报告专业 ...

最新文章

  1. Go后台项目架构思考与重构 | 深度长文
  2. Jackson用法详解
  3. Android功耗优化(7)---如何分析wakelock(wakeup source)持锁问题
  4. 大白菜UEFI版制作u盘启动盘使用教程
  5. 乐鑫科技线上笔试什么内容_2020广东省公务员考试笔试考什么内容?笔试如何去备考?...
  6. 编译在arm版本的Valgrind-转
  7. Atitit.code base view 视图的实现原理
  8. 为什么以太网有最短帧长度的要求_线束工程师:车载以太网介绍
  9. WPS中的公式编辑器如何打空格
  10. 统计·数值分析·概率论·人工智能数学基础
  11. jcr多久更新一次_sci分区什么时候更新
  12. 软件项目开发成本估算方法
  13. 2021-2027全球与中国陶瓷基板市场现状及未来发展趋势
  14. python 日程管理程序_729. 我的日程安排表(Python)
  15. 统一的账号密码管理系统-信息安全课程设计
  16. 深度学习 | 训练及优化方法
  17. springboot搭建redis时提示RedisCommandExecutionException: CLUSTERDOWN Hash slot not served解决办法
  18. c语言iota怎么用,IOTA(埃欧塔)钱包使用教程
  19. Linux的pycharm中出现subprocess.CalledProcessError: Command ‘XXX‘ returned non-zero exit status 1.
  20. MATLAB之牛顿迭代法

热门文章

  1. 为 Jupyter Notebook指定虚拟环境的 Python 解释器
  2. “僵尸病毒”入侵全球电脑,7.5万部电脑中招(来源:广州日报)
  3. python 使用PIL模块将文字写入到图片上
  4. Mysql8 查询事务隔离级别
  5. 关于Android 隐藏 API 和内部 API的查看与使用
  6. 利用T-SQL语句快速清理ZBLOG程序的SQL SERVER2012数据库内容
  7. DDR的前世与今生(一)
  8. macos下 python安装cx_oracle
  9. STL中用erase()方法遍历删除元素
  10. 关于java中的各种流