Csv

如何在 R CSV 中將 %Hh%M 更改為 %M 形式?

  • May 6, 2017

我正在考慮如何將持續時間形式(等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
  1. 不要更改給出的標準欄位%Hh%M,我真的很想以程式方式手動將所有欄位轉換為分鐘展示文稿%M

R:3.3.3

您可以使用自定義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
> 

引用自:https://unix.stackexchange.com/questions/363388