根据一列中的值将所有列的行放在彼此后面
Place rows of all columns behind each other based on values in one column
我找不到正确的行组合方式。我有以下数据框:
Donornr Final_location_DF.Location Final_location_DF.Date Familynr Date_T4 Sample_volume_T4
1 449023 84278_V113_top shelf_blok1_A1 24/11/2020 13 24/11/2020 50
2 449027 84278_V113_top shelf_doos1_A1 24/11/2020 12 24/11/2020 300
3 449027 84278_V113_top shelf_blok1_A2 24/11/2020 12 24/11/2020 300
4 449028 84278_V113_top shelf_doos1_A2 24/11/2020 12 24/11/2020 300
5 449028 84278_V113_top shelf_blok1_A3 24/11/2020 12 24/11/2020 300
如您所见,在 Donornr 列中我们有重复的数字,但行值并不完全相同(主要在 Final_location_DF.location 列中)。我需要的是将重复的 donornumbers 放在一起,这样我最终会得到:
Donornr Final_location_DF.Location Final_location_DF.Date Familynr Date_T4 Sample_volume_T4
1 449023 84278_V113_top shelf_blok1_A1 24/11/2020 13 24/11/2020 50
2 449027 84278_V113_top shelf_doos1_A1 24/11/2020 12 24/11/2020 300 449027 84278_V113_top shelf_blok1_A2 24/11/2020 12 24/11/2020 300
3 449028 84278_V113_top shelf_doos1_A2 24/11/2020 12 24/11/2020 300 449028 84278_V113_top shelf_blok1_A3 24/11/2020 12 24/11/2020 300
有什么办法吗?
非常感谢!
下面创建一个'id'列,用于区分同一Donornr
中的情况,然后将数据框转换为宽格式。列名将是原始列名,并附加 _{id}
。最后一步按您想要的顺序对列进行排序。
library(dplyr)
library(tidyr)
df %>%
group_by(Donornr) %>%
mutate(id = row_number()) %>%
ungroup() %>%
pivot_wider(id_cols = Donornr,
names_from = id,
values_from = Final_location_DF.Location:Sample_volume_T4) %>%
select(Donornr, ends_with("_1"), everything())
我找不到正确的行组合方式。我有以下数据框:
Donornr Final_location_DF.Location Final_location_DF.Date Familynr Date_T4 Sample_volume_T4
1 449023 84278_V113_top shelf_blok1_A1 24/11/2020 13 24/11/2020 50
2 449027 84278_V113_top shelf_doos1_A1 24/11/2020 12 24/11/2020 300
3 449027 84278_V113_top shelf_blok1_A2 24/11/2020 12 24/11/2020 300
4 449028 84278_V113_top shelf_doos1_A2 24/11/2020 12 24/11/2020 300
5 449028 84278_V113_top shelf_blok1_A3 24/11/2020 12 24/11/2020 300
如您所见,在 Donornr 列中我们有重复的数字,但行值并不完全相同(主要在 Final_location_DF.location 列中)。我需要的是将重复的 donornumbers 放在一起,这样我最终会得到:
Donornr Final_location_DF.Location Final_location_DF.Date Familynr Date_T4 Sample_volume_T4
1 449023 84278_V113_top shelf_blok1_A1 24/11/2020 13 24/11/2020 50
2 449027 84278_V113_top shelf_doos1_A1 24/11/2020 12 24/11/2020 300 449027 84278_V113_top shelf_blok1_A2 24/11/2020 12 24/11/2020 300
3 449028 84278_V113_top shelf_doos1_A2 24/11/2020 12 24/11/2020 300 449028 84278_V113_top shelf_blok1_A3 24/11/2020 12 24/11/2020 300
有什么办法吗?
非常感谢!
下面创建一个'id'列,用于区分同一Donornr
中的情况,然后将数据框转换为宽格式。列名将是原始列名,并附加 _{id}
。最后一步按您想要的顺序对列进行排序。
library(dplyr)
library(tidyr)
df %>%
group_by(Donornr) %>%
mutate(id = row_number()) %>%
ungroup() %>%
pivot_wider(id_cols = Donornr,
names_from = id,
values_from = Final_location_DF.Location:Sample_volume_T4) %>%
select(Donornr, ends_with("_1"), everything())