将数据框的数字列(到达和离开时间之间的差异)转换为分钟
Converting numeric column (Difference between arrival and departure time ) of dataframe to minutes
尊敬的 R 社区成员,
我想根据通勤者从起点到目的地的出发时间和到达时间(到达时间 - 出发时间)之间的差异(24 小时格式)创建一个新变量(通勤时间)。
但是,问题是该列是数字,超过 30 分钟的值不会被捕获为分钟。我希望我的通勤时间是几分钟而不是几小时。以下是我的数据集的格式。
Departuretime Arrivaltime commutetime
950 1000 50
1030 1035 5
1750 1800 50
1520 1530 10
当我计算出发时间和到达时间之间的差异时,超过 30 分钟的事情就会变得很奇怪,这当然是您希望发生的事情。我的数据框有 6,670 个条目,这些列是唯一有问题的。 950 和 1000 之间的差异应转换为 9:50 和 10:00 的差异,因此差异不能为 50。如倒数第二行所示,1750 和 1800 之间的差异不应产生50.
非常感谢您的及时帮助。
谢谢!!!
将Arrivaltime
和Departuretime
转换为POSIXct
格式,并使用difftime
计算分钟差值。
df$commutetime <- difftime(
as.POSIXct(sprintf("%04d", df$Arrivaltime), format = "%H%M"),
as.POSIXct(sprintf("%04d", df$Departuretime), format = "%H%M"),
units = "mins")
df
# Departuretime Arrivaltime commutetime
#1 950 1000 10 mins
#2 1030 1035 5 mins
#3 1750 1800 10 mins
#4 1520 1530 10 mins
数据
df <- structure(list(Departuretime = c(950L, 1030L, 1750L, 1520L),
Arrivaltime = c(1000L, 1035L, 1800L, 1530L)), row.names = c(NA,
-4L), class = "data.frame")
尊敬的 R 社区成员, 我想根据通勤者从起点到目的地的出发时间和到达时间(到达时间 - 出发时间)之间的差异(24 小时格式)创建一个新变量(通勤时间)。
但是,问题是该列是数字,超过 30 分钟的值不会被捕获为分钟。我希望我的通勤时间是几分钟而不是几小时。以下是我的数据集的格式。
Departuretime Arrivaltime commutetime
950 1000 50
1030 1035 5
1750 1800 50
1520 1530 10
当我计算出发时间和到达时间之间的差异时,超过 30 分钟的事情就会变得很奇怪,这当然是您希望发生的事情。我的数据框有 6,670 个条目,这些列是唯一有问题的。 950 和 1000 之间的差异应转换为 9:50 和 10:00 的差异,因此差异不能为 50。如倒数第二行所示,1750 和 1800 之间的差异不应产生50.
非常感谢您的及时帮助。
谢谢!!!
将Arrivaltime
和Departuretime
转换为POSIXct
格式,并使用difftime
计算分钟差值。
df$commutetime <- difftime(
as.POSIXct(sprintf("%04d", df$Arrivaltime), format = "%H%M"),
as.POSIXct(sprintf("%04d", df$Departuretime), format = "%H%M"),
units = "mins")
df
# Departuretime Arrivaltime commutetime
#1 950 1000 10 mins
#2 1030 1035 5 mins
#3 1750 1800 10 mins
#4 1520 1530 10 mins
数据
df <- structure(list(Departuretime = c(950L, 1030L, 1750L, 1520L),
Arrivaltime = c(1000L, 1035L, 1800L, 1530L)), row.names = c(NA,
-4L), class = "data.frame")