Я пытаюсь изменить свои данные на основе значения в определенном столбце (т. Е. «Вверх» и «вниз»).Вверх и вниз не совпадают в фрейме данных, поэтому я с трудом «приводил» данные к правильной форме.
Я пытался использовать функцию приведения для смещения данных,но я не могу получить ответы для последовательной (точной) работы.
Это мой ввод:
input = structure(list(X = 1:6, Report = c("Sales.csv", "Sales.csv",
"Sales.csv", "Sales.csv", "Sales.csv", "Sales.csv"), Shock = c("Currencies.USD_Up",
"Currencies.USD_Down", "Currencies.AUD_Up", "Currencies.AUD_Down",
"Currencies.EUR_Down", "Currencies.EUR_Up"), Result = c(-519375.9816,
-7388851.423, -42950.77683, -667.367063, -12819532.15, -138054.0061
), FX = c("USD", "USD", "AUD", "AUD", "EUR", "EUR")), class = "data.frame", row.names = c(NA,
-6L))
, и это мой предпочтительный вывод:
output = structure(list(X = 1:3, Report = c("Sales.csv", "Sales.csv",
"Sales.csv"), Shock = c("Currencies.USD", "Currencies.AUD", "Currencies.EUR"
), Currency = c("USD", "AUD", "EUR"), Up = c(-519375.9816, -42950.77683,
-138054.0061), Down = c(-7388851.423, -667.367063, -12819532.15
)), class = "data.frame", row.names = c(NA, -3L))
Поскольку данные EUR во входных данных расположены в другом порядке, я не могу правильно сформировать данные.Я попытался использовать функцию grep, чтобы упорядочить это, но я не могу заставить это работать.Кто-нибудь может предложить лучший способ?