У меня возникла проблема после изменения набора данных с длинного на широкий (с использованием spread
из библиотеки tidyr в столбце Result_Type
).У меня есть следующий пример df:
Group<-c("A","A","A","B","B","B","C","C","C","D", "D")
Result_Type<-c("Final.Result", "Verification","Test", "Verification","Final.Result","Fast",
"Verification","Fast", "Final.Result", "Test", "Final.Result")
Result<-c(7,1,8,7,"NA",9,10,12,17,50,11)
df<-data.frame(Group, Result_Type, Result)
df
Group Result_Type Result
1 A Final.Result 7
2 A Verification 1
3 A Test 8
4 B Verification 7
5 B Final.Result NA
6 B Fast 9
7 C Verification 10
8 C Fast 12
9 C Final.Result 17
10 D Test 50
11 D Final.Result 11
В столбце Result_type
есть много возможных типов результатов, и в некоторых наборах данных у меня есть Result_Type, которые не будут встречаться в других наборах данных.Однако один уровень: Final.Result
встречается в каждом наборе данных.
Также: это пример данных, но фактические данные имеют много разных столбцов, и поскольку они различаются в зависимости от наборов данных, которые я использую, я использовал spread
(из библиотеки tidyr), поэтому мне не нужно даватьлюбые конкретные имена столбцов, отличные от целевых столбцов.
library("tidyr")
df_spread<-spread(df, key = Result_Type, value = Result)
Group Fast Final.Result Test Verification
1 A <NA> 7 8 1
2 B 9 NA <NA> 7
3 C 12 17 <NA> 10
4 D <NA> 11 50 <NA>
Мне бы хотелось, чтобы после преобразования набора данных из длинного в широкий, Final.Result
- это первый столбец, как остальные столбцырасположение не имеет значения, поэтому я хотел бы, чтобы это было так (без вызова каких-либо имен других столбцов, которые распространяются, или с использованием порядковых номеров заказа):
Group Final.Result Fast Test Verification
1 A 7 <NA> 8 1
2 B NA 9 <NA> 7
3 C 17 12 <NA> 10
4 D 11 <NA> 50 <NA>
Я видел некоторые ответы, которые указалиВы можете изменить порядок расположения столбцов с разбросом или отключить порядок распространения, но это не гарантирует, что Final.Result
всегда является первым столбцом уровней spread
.
Надеюсь, яЯ проясняю, это немного сложно объяснить.Если кому-то понадобится дополнительная информация, я с удовольствием объясню подробнее!