楼主: 不二枉少年
14534 6

[问答] R如何对列值进行批量替换 [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
96 点
帖子
3
精华
0
在线时间
20 小时
注册时间
2017-11-22
最后登录
2018-12-28

楼主
不二枉少年 发表于 2017-11-27 16:03:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现在数据有一列为date
微信截图_20171127155518.png
现在需要将date数据作下处理:
按月份分组
2014-08对应01
2014-09对应02
...
一直到2016年7月

怎么高效的用R来进行批量处理呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:date 批量处理 ATE 列值批量替换

沙发
jiangbeilu 学生认证  发表于 2017-11-27 22:05:40
给你看一段代码就知道了:利用factor可以转化成numeric来处理最快速了。
  1. > dd <- c('2015-07-01','2015-08-10','2015-09-15')
  2. > ddm<- substring(dd,1,7)
  3. > dd1 <- sort(ddm,decreasing=T)
  4. >
  5. > as.numeric(as.factor(dd1))
  6. [1] 3 2 1
复制代码

藤椅
不二枉少年 发表于 2017-11-28 15:48:39
jiangbeilu 发表于 2017-11-27 22:05
给你看一段代码就知道了:利用factor可以转化成numeric来处理最快速了。
嗯嗯,可行,大大给力。

板凳
falseform 发表于 2017-11-28 16:29:37
jiangbeilu 发表于 2017-11-27 22:05
给你看一段代码就知道了:利用factor可以转化成numeric来处理最快速了。
sort这一步的作用是不是可以省略的,这么做的目的是为了展示factor的效果

报纸
jiangbeilu 学生认证  发表于 2017-11-28 17:03:07
falseform 发表于 2017-11-28 16:29
sort这一步的作用是不是可以省略的,这么做的目的是为了展示factor的效果
sort这一步是为了展示,as.numeric变为1,2,3的顺序也是根据原始数据的顺序来定的。

地板
ntsean 发表于 2017-11-29 17:32:06
最好不要用factor吧, 万一数据里面一个月份缺失就不对了, 应该直接用月份算

  1. to_numeric <- function(x, origin = as.Date("2014-08-01")) {
  2.   require(lubridate)
  3.   (year(x) - year(origin)) * 12 +  month(x) - month(origin) + 1
  4. }

  5. to_numeric(c("2014-12-01", "2015-01-01"))
复制代码

7
不二枉少年 发表于 2017-11-30 10:36:45
ntsean 发表于 2017-11-29 17:32
最好不要用factor吧, 万一数据里面一个月份缺失就不对了, 应该直接用月份算
思路严谨,赞

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-23 20:36