我需要在“ci”[c] lock- [i] n列中得到时间的平均值。数据是字符格式,例如“上午8:05”。我可以使用下面的代码重新格式化并将数据提供到我可以计算平均值的点:
View
但出于某些原因,当我尝试使用dcast创建表格时......
hrs$ci <- strptime(hrs$ci, format = "%I:%M %p")
mean(hrs$ci)
...它无效,我收到此错误:
hrs <- dcast(hrs, Office ~ Week, value.var = "ci", fun.aggregate = mean)
关于我做错的任何想法?或者有更好的方法建议?最后,我试图获得dcast为每个办公室提供的每周平均时钟输入时间表。
理想情况下,最后我会得到一天中的一小部分(即0.50 =中午),但我可能会使用其他格式。
答案 0 :(得分:0)
好的,我想我明白了。可能不是最精明的方法,但它有效!
首先,我使用以下内容剥离了AM / PM:
hrs$ci <- substr(hrs$ci, 1, 5)
这转变为&#34; 08:05 AM&#34;简单地说是&#34; 08:05&#34;然后使用another post我将其转换为数字:
hrs$ci <- sapply(strsplit(hr$ci, ":"),
function(x) {
x <- as.numeric(x)
x[1]+x[2]/60
}
)
然后我将输出除以24得到我想要的一天的分数:
hrs$ci <- hrs$ci / 24
之后我运行了上面的代码:
hrs <- dcast(hrs, Office ~ Week, value.var = "ci", fun.aggregate = mean)
它有效!