R 使用简单代码排序
R sorting using simple codes
有人可以帮我解决以下问题吗?
数据集示例:
Ticketid Creation_Date Location Person
a1 01-02-2015 A John
b1 03-02-2015 B Jack
c1 03-02-2015 C Mint
a1 03-02-2015 D Manu
d1 03-02-2015 A Somu
e1 03-02-2015 A John
b1 11-02-2015 B Jack
a1 11-02-2015 C Mint
b1 14-02-2015 F John
b1 27-02-2015 E John
问题:
1.Remove重复的Ticketid是这样过滤的
->创建日期距第一次出现日期不到 7 天。
例如:对于工单 ID,"a1",有 3 个创建日期,即“01-02-2015,03-02-2015,11-02-2015”,我想要一个新列 "repeat flag" 并将在本例中第一次出现的 01-02-2015 标记为是。因为第二次发生在第一次发生后的 7 天内。
2.By以上逻辑,
->I want to filter by Location(Ticketid,creationdate)
->I want to filter by Person(Ticketid,creationdate)
代码:
t.first <- eg1[匹配(唯一(eg1$Ticketid),eg1$Ticketid),]
如何在相同的 excel sheet 中保存输出并为发生超过 1 个事件的 locations/engineers 进行条件格式化?
我尝试的代码太基础了,提前请求别人的帮助asap.Thanks。
更好地阐明查询的附加组件:
输入:
Ticketid Creation_Date Location Person Partused deviceused
a1 01-02-2015 A John Monitor Model1
b1 03-02-2015 B Jack Keyboard Model2
c1 03-02-2015 C Mint cable Model3
a1 03-02-2015 D Manu Monitor Model1
d1 03-02-2015 A Somu Motherboard Model2
e1 03-02-2015 A John Motherboard Model2
b1 11-02-2015 B Jack cable Model2
a1 11-02-2015 C Mint Keyboard Model3
b1 14-02-2015 F John Motherboard Model1
b1 27-02-2015 E John Motherboard Model3
我希望我的输出格式如下 table:
重复标志现在有很多conditions:for如果唯一的条件是第二次订单是否在第一次订单的7天内创建,如a1.
每个工单 ID 的首次创建日期不同。
Answer1:**Location RepeatFlag Model1 Model2 Model3**
Answer2:**Location Person RepeatFlag Model1 Model2 Model3**
Answer3:**Location PartsUsed RepeatFlag Model1 Model2 Model3**
注意:这只是动态更改不同行的示例。因此,请分享一个满足任何类型输入的代码提示,因为我希望这是一个自动化过程,一旦数据在源中刷新(excel sheet).
请说明我们如何将其自动化。
感谢支持provided.Much感激不尽
此致,
VK
据我了解你的问题:
df <- data.frame(Ticketid = c('a1','b1','c1','a1','d1','e1','b1','a1','b1','b1'),
Creation_Date = as.Date(c('01-02-2015','03-02-2015','03-02-2015','03-02-2015','03-02-2015','03-02-2015','11-02-2015','11-02-2015','14-02-2015','27-02-2015'), format = '%d-%m-%Y'),
Location = c('A','B','C','D','A','A','B','C','F','E'),
Person = c('John','Jack','Mint','Manu', 'Somu','John', 'Jack', 'Mint','John','John') )
Ticketid Creation_Date Location Person
1 a1 2015-02-01 A John
2 b1 2015-02-03 B Jack
3 c1 2015-02-03 C Mint
4 a1 2015-02-03 D Manu
5 d1 2015-02-03 A Somu
6 e1 2015-02-03 A John
7 b1 2015-02-11 B Jack
8 a1 2015-02-11 C Mint
9 b1 2015-02-14 F John
10 b1 2015-02-27 E John
library(dplyr)
first_creation <- df %>%
select(Ticketid,First_Date = Creation_Date) %>%
group_by(Ticketid) %>%
slice(1) %>%
ungroup()
df2 <- merge(first_creation,df, all.y = T, by = 'Ticketid')
df3 <- df2 %>% mutate(time_diff = Creation_Date - First_Date)
df_flagged <- df3 %>% group_by(Ticketid) %>% mutate(Within_7 = ifelse(time_diff > 7 | time_diff == 0, 'NO','YES'))
Source: local data frame [10 x 7]
Groups: Ticketid
Ticketid First_Date Creation_Date Location Person time_diff Within_7
1 a1 2015-02-01 2015-02-01 A John 0 days NO
2 a1 2015-02-01 2015-02-03 D Manu 2 days YES
3 a1 2015-02-01 2015-02-11 C Mint 10 days NO
4 b1 2015-02-03 2015-02-03 B Jack 0 days NO
5 b1 2015-02-03 2015-02-11 B Jack 8 days NO
6 b1 2015-02-03 2015-02-14 F John 11 days NO
7 b1 2015-02-03 2015-02-27 E John 24 days NO
8 c1 2015-02-03 2015-02-03 C Mint 0 days NO
9 d1 2015-02-03 2015-02-03 A Somu 0 days NO
10 e1 2015-02-03 2015-02-03 A John 0 days NO
有人可以帮我解决以下问题吗?
数据集示例:
Ticketid Creation_Date Location Person
a1 01-02-2015 A John
b1 03-02-2015 B Jack
c1 03-02-2015 C Mint
a1 03-02-2015 D Manu
d1 03-02-2015 A Somu
e1 03-02-2015 A John
b1 11-02-2015 B Jack
a1 11-02-2015 C Mint
b1 14-02-2015 F John
b1 27-02-2015 E John
问题:
1.Remove重复的Ticketid是这样过滤的 ->创建日期距第一次出现日期不到 7 天。 例如:对于工单 ID,"a1",有 3 个创建日期,即“01-02-2015,03-02-2015,11-02-2015”,我想要一个新列 "repeat flag" 并将在本例中第一次出现的 01-02-2015 标记为是。因为第二次发生在第一次发生后的 7 天内。
2.By以上逻辑,
->I want to filter by Location(Ticketid,creationdate)
->I want to filter by Person(Ticketid,creationdate)
代码:
t.first <- eg1[匹配(唯一(eg1$Ticketid),eg1$Ticketid),]
如何在相同的 excel sheet 中保存输出并为发生超过 1 个事件的 locations/engineers 进行条件格式化?
我尝试的代码太基础了,提前请求别人的帮助asap.Thanks。
更好地阐明查询的附加组件:
输入:
Ticketid Creation_Date Location Person Partused deviceused
a1 01-02-2015 A John Monitor Model1
b1 03-02-2015 B Jack Keyboard Model2
c1 03-02-2015 C Mint cable Model3
a1 03-02-2015 D Manu Monitor Model1
d1 03-02-2015 A Somu Motherboard Model2
e1 03-02-2015 A John Motherboard Model2
b1 11-02-2015 B Jack cable Model2
a1 11-02-2015 C Mint Keyboard Model3
b1 14-02-2015 F John Motherboard Model1
b1 27-02-2015 E John Motherboard Model3
我希望我的输出格式如下 table:
重复标志现在有很多conditions:for如果唯一的条件是第二次订单是否在第一次订单的7天内创建,如a1.
每个工单 ID 的首次创建日期不同。
Answer1:**Location RepeatFlag Model1 Model2 Model3**
Answer2:**Location Person RepeatFlag Model1 Model2 Model3**
Answer3:**Location PartsUsed RepeatFlag Model1 Model2 Model3**
注意:这只是动态更改不同行的示例。因此,请分享一个满足任何类型输入的代码提示,因为我希望这是一个自动化过程,一旦数据在源中刷新(excel sheet).
请说明我们如何将其自动化。
感谢支持provided.Much感激不尽
此致, VK
据我了解你的问题:
df <- data.frame(Ticketid = c('a1','b1','c1','a1','d1','e1','b1','a1','b1','b1'),
Creation_Date = as.Date(c('01-02-2015','03-02-2015','03-02-2015','03-02-2015','03-02-2015','03-02-2015','11-02-2015','11-02-2015','14-02-2015','27-02-2015'), format = '%d-%m-%Y'),
Location = c('A','B','C','D','A','A','B','C','F','E'),
Person = c('John','Jack','Mint','Manu', 'Somu','John', 'Jack', 'Mint','John','John') )
Ticketid Creation_Date Location Person
1 a1 2015-02-01 A John
2 b1 2015-02-03 B Jack
3 c1 2015-02-03 C Mint
4 a1 2015-02-03 D Manu
5 d1 2015-02-03 A Somu
6 e1 2015-02-03 A John
7 b1 2015-02-11 B Jack
8 a1 2015-02-11 C Mint
9 b1 2015-02-14 F John
10 b1 2015-02-27 E John
library(dplyr)
first_creation <- df %>%
select(Ticketid,First_Date = Creation_Date) %>%
group_by(Ticketid) %>%
slice(1) %>%
ungroup()
df2 <- merge(first_creation,df, all.y = T, by = 'Ticketid')
df3 <- df2 %>% mutate(time_diff = Creation_Date - First_Date)
df_flagged <- df3 %>% group_by(Ticketid) %>% mutate(Within_7 = ifelse(time_diff > 7 | time_diff == 0, 'NO','YES'))
Source: local data frame [10 x 7]
Groups: Ticketid
Ticketid First_Date Creation_Date Location Person time_diff Within_7
1 a1 2015-02-01 2015-02-01 A John 0 days NO
2 a1 2015-02-01 2015-02-03 D Manu 2 days YES
3 a1 2015-02-01 2015-02-11 C Mint 10 days NO
4 b1 2015-02-03 2015-02-03 B Jack 0 days NO
5 b1 2015-02-03 2015-02-11 B Jack 8 days NO
6 b1 2015-02-03 2015-02-14 F John 11 days NO
7 b1 2015-02-03 2015-02-27 E John 24 days NO
8 c1 2015-02-03 2015-02-03 C Mint 0 days NO
9 d1 2015-02-03 2015-02-03 A Somu 0 days NO
10 e1 2015-02-03 2015-02-03 A John 0 days NO