使用grep函数在R中正确投射数据

时间:2019-07-04 22:30:18

标签: r

我正在尝试根据特定列(即“ up”和“ down”)中的值重塑数据。在数据框中,“上下”的顺序不同,因此我很难将数据“投射”为正确的形状。

我尝试使用强制转换功能来移动数据,但是我无法以一致的方式(也就是准确的方式)获得答案。

这是我的输入内容

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函数对它进行排序,但是我无法完成这项工作。谁能提出更好的方法?

1 个答案:

答案 0 :(得分:2)

这是一种0x530的方法:

0x55555555fff530