簡體   English   中英

如何在R中運行循環以找到7范圍內的唯一數字組合?

[英]How to run a loop in R to find a unique combination of numbers within a range of 7?

我有一個看起來像這樣的數據集:

Key Days
A 1
A 2
A 3
A 8
A 9
A 36
A 37
B 14
B 15
B 44
B 45

我想根據7天一組來分割各個密鑰。例如:-

Key Days
A 1
A 2
A 3

Key Days
A 8
A 9

Key Days
A 36
A 37

Key Days
B 14
B 15

Key Days
B 44
B 45

我可以使用ifelse並指定1-7、7-14等存儲桶,直到63-70(天的最大可能值)。 但是,問題出在“天”列中。 在很多情況下,幾天之間存在重疊-以第14-15天為例,如果使用ifelse邏輯(7-14和15-21)進行划分,則會分成2個括號。 拆分此日期的理想方法是確定一天並將其添加7天,並檢查實際上屬於該類別的數據行數。 我認為我們需要為此使用循環。 我可以在excel中做到這一點,但我有20000個鍵的20000行數據,因此我使用R。我需要一個循環來檢查每個鍵的值,並為每個鍵進一步檢查day的值並將它們存儲在7通過檢查每個范圍的第一天值。

我們通過在“天”列上應用%/%來創建分組變量,然后根據該“ grp”將數據集split為一個list

grp <- df$Day %/%7
split(df, factor(grp, levels = unique(grp)))
#$`0`
#  Key Days
#1   A    1
#2   A    2
#3   A    3

#$`1`
#  Key Days
#4   A    8
#5   A    9

#$`5`
#  Key Days
#6   A   36
#7   A   37

#$`2`
#  Key Days
#8   B   14
#9   B   15

#$`6`
#   Key Days
#10   B   44
#11   B   45

更新資料

如果我們也需要按“鍵”分開

lst <- split(df, list(factor(grp, levels = unique(grp)), df$Key), drop=TRUE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM