按文件扩展名和时间对数据框中的文件进行分组

3

我有一些数据,其中不同的文件在不同的时间被访问。每个文件都有其特定的扩展名。根据这些扩展名,我想将这些文件分成不同的群组,例如(.pdf, .pptx, .srt)这些扩展名应该放在名为“工作”(WORK)的群组中。此外,具有扩展名(.mp3, mp4,.jpg)的文件应放在“娱乐”(Entertainment)群组中,其余文件应放在名为“其他”(Other)的群组中。我需要将时间分为两个类别:“白天”(6am-6pm)和“夜晚”(6pm-6am)。最后,我需要制作一个柱状图,告诉我哪个群组拥有更多的文件,以及白天和夜晚各有多少个文件。我不知道如何开始。

Name                                                               Time
$R1XFFF3.JPG                                        11/04/2017 20:39:17
[Fall 2016] Duty Roaster, Final Term (1).xlsx       21/03/2017 01:33:48
04_OOP_Base.sln                                     16/03/2017 22:26:15
1 - 2 - What is Machine Learning- (7 min).pdf       02/04/2017 02:03:18
1 - 3 - Supervised Learning (12 min).jpg            02/04/2017 02:03:20
1 - 4 - Unsupervised Learning (14 min).mkv          02/04/2017 02:03:21
1.jpg                                               08/04/2017 19:02:55
1.png                                               17/03/2017 11:17:19
15-oop.ppt                                          16/03/2017 22:28:58
2 - 1 - Model Representation (8 min).srt            02/04/2017 02:03:21
2 - 2 - Cost Function (8 min).srt                   02/04/2017 02:03:22
2 - 3 - Cost Function - Intuition I (11 min).srt    02/04/2017 02:03:23
2 - 4 - Cost Function - Intuition II (9 min).srt    02/04/2017 02:03:23
2 - 5 - Gradient Descent (11 min).ppt               02/04/2017 02:03:39
1个回答

1
你可以使用正则表达式和 lubridate() 中的 hour 来检查时间条件。
library(lubridate)
df$cluster = ifelse(grepl("(\\.pdf|\\.pptx|\\.srt)$", df$Name, perl = TRUE), "WORK", "Other")
df$cluster = ifelse(grepl("(\\.mp3|\\.mp4|\\.jpg)$", df$Name, perl = TRUE), "Entertainment", df$cluster)

df$Time = as.POSIXct(strptime(df$Time, "%m/%d/%Y %H:%M:%S"))

df$Time2 = ifelse(hour(df$Time) >=6 & hour(df$Time) <= 18, "Day", "Night")

对于绘图,您可以将其分成两个单独的绘图:一个用于夜间,一个用于白天。

barplot(table(df[df$Time2 == "Night", "cluster"]))

如果我们在绘图之前运行这个程序,就可以将它们并排显示。
par(mfrow = c(1, 2))

在同一绘图中
library(ggplot2)
p = ggplot(df, aes(cluster, fill = Time2))
p + geom_bar(position = "dodge")

我能否对他的数据应用机器学习算法?如果可以,该如何操作? - Zeeshan Nisar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接