楼主: 阿璇tian
7934 15

[问答] R语言怎么根据空格把一个变量拆成两个变量 [推广有奖]

11
阿璇tian 发表于 2018-11-16 14:38:15
EMUNAH777 发表于 2018-11-16 12:48
但是这样子分割的话,就不能保存为一个完整的时间变量了。
年月日可以用as.Date保存为时间变量,单独的小时 ...
  1. a<- strptime(dk$checktime,"%Y/%m/%d %H:%M", tz = "GMT")
  2. dk$a<- as.Date(a)
  3. dk$b<- as.hms(a,tz = "GMT")
  4. str(dk)
  5. dk$t<- ifelse(dk$b<="12:00:00",0,1)
复制代码
非常感谢老师,我按照您的方法把字符拆开了,但是对b这列时间变量跟12点进行比较,这么着写还是不对,怎么筛选时间条件呢?

12
阿璇tian 发表于 2018-11-16 14:38:31
cheetahfly 发表于 2018-11-16 13:47
疏忽了,lubridate::now()
谢谢老师
老师,我试了一下用mutate一直报错

no applicable method for 'mutate_' applied to an object of class "c('POSIXlt', 'POSIXt')"

我用的transform才可以了

13
EMUNAH777 发表于 2018-11-16 15:18:04
阿璇tian 发表于 2018-11-16 14:38
非常感谢老师,我按照您的方法把字符拆开了,但是对b这列时间变量跟12点进行比较,这么着写还是不对,怎么 ...
你好,as.hms函数返回的结果实际上是以秒为单位存储的时间!所以12点就是12小时乘以60分钟乘以60秒,具体你可以参考?hms的说明文件,直接写《=“12:00:00”程序识别不了

> as.hms(tm,tz = "GMT")   #这里我随便写了一个时间,用as.hms转化了一下
08:39:00

> class(as.hms(tm,tz = "GMT")) #查看它的类型,发现是difftime,可以以秒为基础加减乘除运算,当日0点0分0秒记为0,之后比这个时间多几秒记为多少秒
[1] "hms"      "difftime"

> as.hms(tm,tz = "GMT")+0 #直接加0会显示计算结果,发现这个时间比初始多了31140秒
Time difference of 31140 secs


> as.hms(tm,tz = "GMT") <= 12*60*60 #所以按照这个逻辑,和中午12点对应的秒数进行逻辑比较,结果是TRUE
[1] TRUE

> as.hms(tm,tz = "GMT") <= as.hms("11:58:12") #如果觉得上面那么写不直观,如果要比较更复杂的时间,不想一个个算有多少秒,也可以这样子
[1] TRUE

同样的你直接输入一个数字,用as.hms也可以转化为时间
> as.hms(8900)
02:28:20

> df <- as.data.frame(as.hms(8900))  #把as.hms的结果以表格方式存储不影响它后续计算

>df[[1]]
02:28:20
> df[[1]] <= 12*60*60
[1] TRUE



已有 2 人评分论坛币 收起 理由
谱仪 + 6 精彩帖子
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 16   查看全部评分

14
阿璇tian 发表于 2018-11-16 15:45:49
EMUNAH777 发表于 2018-11-16 15:18
你好,as.hms函数返回的结果实际上是以秒为单位存储的时间!所以12点就是12小时乘以60分钟乘以60秒,具体 ...
可以了,学到了很多,非常感谢

15
zzbb2266 发表于 2018-11-16 20:35:38
  1. library(stringr)
  2. str_split(dk$checktime," ")  ##结果为list
  3. str_split_fixed(dk$checktime," ",2) ##结果为data.frame
  4. word(dk$checktime,1,2, sep = fixed(" ”))
复制代码

都可以

16
阿璇tian 发表于 2018-11-20 09:02:45
请问老师们,我现在有个日期变量是这样的  “11月18日 12:33” 这样的变量日期不是标准的,我试了strptime, as.Date都不行,说是不是标准格式,这样的怎么整呢

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

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