如何在 R CSV 中将 %Hh%M 更改为 %M 形式?

如何在 R CSV 中将 %Hh%M 更改为 %M 形式?

我在想如何动态地将持续时间形式(等11h11类似%Hh%M)更改为分钟形式,例如%M.我认为最好保留使用的原始数据形式EMFIT-QS设备。数据

Name,Time_duration
Leo,11h11

代码

DF <- read.csv("/home/masi/Documents/Data/data.csv", header = T, sep = ",")
str(DF)

输出

$ Time_duration         : Factor w/ 1 level 11h11",..

我的建议

  1. 将数据持续时间更改为分钟,其中第二列用于指定单位以避免由于非标准单位而造成混淆

    Name,Time_duration
    -, min
    Leo,671
    
  2. 不要更改 给出的标准字段%Hh%M,我真的很想以编程方式将所有字段手动转换为分钟演示文稿%M

回复:3.3.3

答案1

您可以使用自定义colClasses函数 - 如中所述为 read.table/read.csv 中的 colClasses 参数指定自定义日期格式

为了显示;给定

$ cat file.csv 
Name,Time_duration
Leo,11h11

然后在R

> setClass('myTime')
> 
> setAs('character','myTime', function(from) {
+ x <- as.POSIXlt(from, format='%Hh%M')
+ return (x$hour*60 + x$min)
+ })
> 
> data <- read.csv2(file='file.csv', sep=',', dec='.', header=TRUE, 
+ colClasses=c('character','myTime'))
> 
> data
  Name Time_duration
1  Leo           671
> 

相关内容