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

本文介绍了R语言入门的实验二,涉及数据处理实践,包括字段选择、数据编码、缺失值处理、日期格式转换、排序、数据合并、SQL查询及随机抽样等关键步骤。通过实例演示了如何使用R进行基础数据操作和清洗,适合初学者学习和实践。
摘要由CSDN通过智能技术生成

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入门和获得帮助 7   1.1 下载和安装R软件 8   1.2 开始运行R软件 10   1.3 输入R命令 13   1.4 退出R 15   1.5 中断R正在运行的程序 16   1.6 查看帮助文档 17   1.7 获取函数的帮助文档 18   1.8 搜索帮助文档 20   1.9 查看R软件包帮助信息 21   1.10 通过网络获取帮助 23   1.11 寻找相关函数与数据包 26   1.12 查询邮件列表 27   1.13 向邮件列表提交问题 27   第2章 基础知识 30   2.1 显示内容 30   2.2 设定变量 32   2.3 列出所有变量 34   2.4 删除变量 35   2.5 生成向量 36   2.6 计算基本统计量 37   2.7 生成数列 40   2.8 向量比较 42   2.9 选取向量中的元素 43   2.10 向量的计算 46   2.11 运算符优先级问题 48   2.12 定义函数 50   2.13 减少输入,得到更多命令 52   2.14 常见错误 54   第3章 R软件导览 58   3.1 获取和设定工作目录 58   3.2 保存工作空间 59   3.3 查看历史命令记录 60   3.4 保存先前命令产生的结果 60   3.5 显示搜索路径 61   3.6 使用R包中的函数 62   3.7 使用R的内置数据集 64   3.8 查看已安装的R包列表 65   3.9 从CRAN网站安装R包 67   3.10 设定默认CRAN网站镜像 69   3.11 隐藏启动信息 70   3.12 运行脚本 70   3.13 批量运行R代码 71   3.14 获取和设定环境变量 74   3.15 找到R的主目录 75   3.16 R的客户化 76   第4章 输入与输出 80   4.1 使用键盘输入数据 81   4.2 显示更少的位数(或更多的位数) 82   4.3 将输出结果重定向到某一文件 84   4.4 显示文件列表 85   4.5 解决无法在Windows中打开文件的问题 86   4.6 阅读固定宽度数据记录 87   4.7 读取表格数据文件 88   4.8 读取CSV文件 90   4.9 写入CSV文件 92   4.10 从网络中读取表格或CSV格式数据 93   4.11 读取HTML表格数据 94   4.12 读取复杂格式数据文件 96   4.13 读取MySQL数据库中的数据 100   4.14 保存和传送目标 102   第5章 数据结构 104   5.1 对向量添加数据 111   5.2 在向量中插入数据 112   5.3 理解循环规则 113   5.4 构建因子(即分类变量) 115   5.5 将多个向量合并成单个向量以及平行因子 117   5.6 创建列表 118   5.7 根据位置选定列表元素 119   5.8 根据名称选定列表元素 121   5.9 构建一个名称/值关联表 122   5.10 从列表中移除元素 124   5.11 将列表转换为向量 125   5.12 从列表中移除取值为空值(即NULL)的元素 126   5.13 使用条件来移除列表元素 127   5.14 矩阵初始化 129   5.15 执行矩阵运算 130   5.16 将描述性名称赋给矩阵的行和列 131   5.17 从矩阵中选定一行或一列 132   5.18 用列数据初始化数据框 133   5.19 由行数据初始化数据框 134   5.20 添加行至数据框 136   5.21 预分配数据框 137   5.22 根据位置选择数据框的列 138   5.23 根据列名选定数据框的列 142   5.24 更便捷地选定行和列 143   5.25 修改数据框的列名 145   5.26 编辑数据框 146   5.27 从数据框中移除NA值 148   5.28 根据名称排除列 149   5.29 合并两个数据框 150   5.30 根据共有列合并数据框 151   5.31 更便捷地访问数据框内容 152   5.32 基本数据类型之间的转换 154   5.33 不同结构化数据类型间的转换 156   第6章 数据转换 159   6.1 向量分组 160   6.2 将函数应用于每个列表元素 161   6.3 将函数应用于每行 163   6.4 将函数应用于每列 164   6.5 将函数应用于组数据 166   6.6 将函数应用于行组 168   6.7 将函数应用于平行向量或列表 170   第7章 字符串和日期 172   7.1 获取字符串长度 174   7.2 连接字符串 175   7.3 提取子串 176   7.4 根据分隔符分割字符串 176   7.5 替代子串 178   7.6 查看字符串中的特殊字符 179   7.7 生成字符串的所有成对组合 179   7.8 得到当前日期 181   7.9 转换字符串为日期 181   7.10 转换日期为字符串 182   7.11 转化年、月、日为日期 183   7.12 得到儒略日期 185   7.13 提取日期的一部分 185   7.14 创建日期序列 187   第8章 概率 189   8.1 计算组合数 191   8.2 生成组合 192   8.3 生成随机数 193   8.4 生成可再生的随机数 194   8.5 生成随机样本 196   8.6 生成随机序列 197   8.7 随机排列向量 198   8.8 计算离散分布的概率 198   8.9 计算连续分布的概率 200   8.10 转换概率为分位数 201   8.11 绘制密度函数 203   第9章 统计概论 206   9.1 汇总数据 208   9.2 计算相对频数 210   9.3 因子制表和列联表创建 211   9.4 检验分类变量独立性 212   9.5 计算数据集的分位数(和四分位数) 212   9.6 求分位数的逆 213   9.7 数据转换为z分数 214   9.8 检验样本均值(t检验) 215   9.9 均值的置信区间 216   9.10 中位数的置信区间 217   9.11 检验样本比例 218   9.12 比例的置信区间 219   9.13 检验正态性 220   9.14 游程检验 222   9.15 比较两个样本的均值 223   9.16 比较两个非参数样本的位置 225   9.17 检验相关系数的显著性 226   9.18 检验组的等比例 228   9.19 组均值间成对比较 229   9.20 检验两样本的相同分布 230   第10章 图形 232   10.1 创建散点图 234   10.2 添加标题和标签 236   10.3 添加网格 237   10.4 创建多组散点图 238   10.5 添加图例 240   10.6 绘制散点图的回归线 242   10.7 多变量散点图的绘制 243   10.8 创建每个因子水平的散点图 244   10.9 创建条形图 246   10.10 对条形图添加置信区间 248   10.11 给条形图上色 249   10.12 绘制过点x和y的线 251   10.13 改变线的类型、宽度或者颜色 253   10.14 绘制多个数据集 254   10.15 添加垂直线和水平线 256   10.16 创建箱线图 257   10.17 对每个因子水平创建箱线图 258   10.18 创建直方图 259   10.19 对直方图添加密度估计 261   10.20 创建离散直方图 262   10.21 创建正态Q-Q图 264   10.22 创建其他Q-Q图 265   10.23 用多种颜色绘制变量 266   10.24 绘制函数 269   10.25 图形间暂停 270   10.26 在一页中显示多个图形 271   10.27 打开另一个图形窗口 273   10.28 在文档中绘制图形 274   10.29 改变图形参数 275   第11章 线性回归和方差分析 277   11.1 简单线性回归 279   11.2 多元线性回归 281   11.3 得到回归统计量 282   11.4 理解回归的汇总结果 286   11.5 运行无截距的线性回归 289   11.6 运行有交户项的线性回归 290   11.7 选择最合适的回归变量 292   11.8 对数据子集回归 295   11.9 在回归公式中使用表达式 296   11.10 多项式回归 298   11.11 转换数据的回归 299   11.12 寻找最佳幂变换 301   11.13 回归系数的置信区间 304   11.14 绘制回归残差 304   11.15 诊断线性回归 306   11.16 识别有影响的观察值 309   11.17 残差自相关检验 310   11.18 预测新值 311   11.19 建立预测区间 312   11.20 运行单因素方差分析 313   11.21 创建交互关系图 315   11.22 找到组间均值的不同 316   11.23 执行稳健方差分析 318   11.24 运用方差分析比较模型 320   第12章 有用的方法 323   12.1 查看你的数据 323   12.2 拓宽你的输出 324   12.3 输出赋值结果 325   12.4 对行和列求和 325   12.5 按列输出数据 326   12.6 对数据分级 328   12.7 找到特定值的位置 329   12.8 每隔n个选定一个向量元素 330   12.9 找到成对的最小值或者最大值 331   12.10 生成多个因子的组合 332   12.11 转换一个数据框 333   12.12 对数据框排序 334   12.13 对两列排序 335   12.14 移除变量属性 336   12.15 显示对象的结构 337   12.16 代码运行时间 340   12.17 抑制警告和错误消息 341   12.18 从列表中提取函数参数 342   12.19 定义你自己的元运算符 344   第13章 高级数值分析和统计方法 347   13.1 最小化或者最大化一个单参数函数 347   13.2 最小化或者最大化多参数函数 348   13.3 计算特征值和特征向量 350   13.4 主成分分析 351   13.5 简单正交回归 352   13.6 数据的聚类 354   13.7 预测元变量(逻辑回归) 357   13.8 统计量的自助法 359   13.9 因子分析 361   第14章 时间序列分析 366   14.1 表示时间序列 367   14.2 绘制时序图 370   14.3 提取最老的观测值或者最新的观测值 373   14.4 选取时间序列的子集 374   14.5 合并多个时间序列 376   14.6 缺失时间序列的填充 378   14.7 时间序列的滞后 380   14.8 计算逐次差分 381   14.9 时间序列相关的计算 382   14.10 计算移动平均 383   14.11 在日历时间范围内应用函数 384   14.12 应用滚动函数 386   14.13 绘制自相关函数图 388   14.14 检验时间序列的自相关 389   14.15 绘制偏自相关函数 390   14.16 两个时间序列间的滞后相关性 391   14.17 剔除时间序列的趋势 393   14.18 拟合ARIMA模型 394   14.19 剔除ARIMA模型中不显著的系数 397   14.20 对ARIMA模型进行诊断 399   14.21 用ARIMA模型进行预测 400   14.22 均值回归的检验 402   14.23 时间序列的平滑 404
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值