[英]R loop over levels of a factor to create a sequence of numbers for each level
[英]R: For loop- For each subset, add character values that incorporate the subsetted factor level and unique iD numbers
抱歉,標題太糟糕了。 但是,我很難使這個特定問題成為一個簡潔的標題。
我有一個這樣的數據框(注意:它有超過30萬個鱗翅目科,長於50000行):
df<-
lepfam lep_notes lep_species
Geometridae Eois sp
Erebidae black/orange
Erebidae black spikes
Erebidae redthorax/red legs
Noctuidae fuzzy/ green
Noctuidae black hair/greenbody
Noctuidae fuzzy/green
Saturnidae Polyphemous sp
我想通過當前數據框環df
和填空題lep_species
值與條件形態的物種名稱lep_notes
。 lep_species
名稱需要包括lepfam
名稱和表示不同形態物種的連續數字(例如Erebidae morphosp1
)。 如果更簡單,它也可以是Erebidae 1
,但我更喜歡“ morphosp”作為名稱的一部分。 因此,我需要通過每個唯一的lepfam
子集數據。 然后,我要給lep_species
名稱賦予那些目前沒有名稱但在lep_notes
具有描述符的lep_notes
。 對於lep_notes
每個唯一描述符,循環將為共享該描述符的個人指定一個唯一名稱。 數據框如下所示:
df<-
lepfam lep_notes lep_species
Geometridae Eois sp
Erebidae black/orange Erebidae_morphosp1
Erebidae black spikes Erebidae_morphosp2
Erebidae redthorax/red legs Erebidae_morphosp3
Noctuidae fuzzy/ green Noctuidae_morphosp1
Noctuidae black hair/greenbody Noctuidae_morphosp2
Noctuidae fuzzy/green Noctuidae_morphosp1
Saturnidae Polyphemous sp
如果您可以使用dplyr
並且不需要連續(盡管唯一)編號:
df %>%
group_by(lepfam) %>%
mutate(lep_species=ifelse(!is.na(lep_species), lep_species,
paste0(lepfam, "_morphosp", rank(lep_notes, ties.method ="min"))))
lepfam lep_notes lep_species
<chr> <chr> <chr>
1 Geometridae <NA> Eois sp
2 Erebidae black/orange Erebidae_morphosp2
3 Erebidae black spikes Erebidae_morphosp1
4 Erebidae redthorax/red legs Erebidae_morphosp3
5 Noctuidae fuzzy/green Noctuidae_morphosp2
6 Noctuidae black hair/greenbody Noctuidae_morphosp1
7 Noctuidae fuzzy/green Noctuidae_morphosp2
8 Saturnidae <NA> Polyphemous sp
或連續的數字:
df %>%
group_by(lepfam) %>%
mutate(lep_species=ifelse(!is.na(lep_species), lep_species,
paste0(lepfam, "_morphosp", match(lep_notes,unique(lep_notes)))))
lepfam lep_notes lep_species
<chr> <chr> <chr>
1 Geometridae <NA> Eois sp
2 Erebidae black/orange Erebidae_morphosp1
3 Erebidae black spikes Erebidae_morphosp2
4 Erebidae redthorax/red legs Erebidae_morphosp3
5 Noctuidae fuzzy/green Noctuidae_morphosp1
6 Noctuidae black hair/greenbody Noctuidae_morphosp2
7 Noctuidae fuzzy/green Noctuidae_morphosp1
8 Saturnidae <NA> Polyphemous sp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.