首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按文件扩展名和时间对文件的data.frame进行分组

按文件扩展名和时间对文件的data.frame进行分组
EN

Stack Overflow用户
提问于 2017-05-10 19:30:42
回答 1查看 85关注 0票数 3

我有一个在不同时间访问不同文件的数据。每个文件都有其特定的扩展名。根据这些扩展名,我希望有这些文件的集群(.pdf、.pptx、.srt),这些扩展名应该放在一个名为"WORK“的集群中。此外,具有扩展名的文件(.mp3、mp4、.jpg)应该保存在“娱乐”集群中,其余的文件应该放在“其他”命名集群中。我必须将时间分为两类:“白天”(早上6点-下午6点)和晚上(6点-6点).Finally--我必须做一个图表(直方图),来告诉哪个集群有更多的文件,白天和晚上有多少个文件。我不知道怎么开始

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-10 20:06:28

您可以使用regex对类别和hourlubridate()检查时间条件。

代码语言:javascript
复制
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")

为了绘图,你可以把它分成两个不同的情节:一个是夜间的,一个是白天的。

代码语言:javascript
复制
barplot(table(df[df$Time2 == "Night", "cluster"]))

如果我们在绘图之前运行这个程序,我们就可以把它们并排放在一起。

代码语言:javascript
复制
par(mfrow = c(1, 2))

在同一个情节里

代码语言:javascript
复制
library(ggplot2)
p = ggplot(df, aes(cluster, fill = Time2))
p + geom_bar(position = "dodge")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43901232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档