I zdefiniowano typ rekordu dla niektórych danych klienta w F # w następujący sposób: -Warunkowe suma w F #
type DataPoint = {
date: string;
dr: string;
Group: string;
Product: string;
Book: int;
Revenue: int} with
static member fromFile file =
file
|> File.ReadLines
|> Seq.skip 1 //skip the header
|> Seq.map (fun s-> s.Split ',') // split each line into array
|> Seq.map (fun a -> {date = string a.[0]; dr = string a.[1];
Group = string a.[2]; Product = string a.[3];
Book = int a.[4]; Revenue = int a.[5] });;
// creates a record for each line
let pivot (file) = DataPoint.fromFile file
|> ??????????
Dla wierszy, gdzie data, dr, Grupa i produktów są równi, chcę następnie suma wszystkie pozycje Księgi i Przychody, generujące wiersz przechylony. Więc jakaś instrukcja if if else powinna być w porządku. Podejrzewam, że muszę zacząć od pierwszego punktu danych i rekurencyjnie dodać każdy pasujący wiersz, a następnie usunąć pasujący wiersz, aby uniknąć duplikatów w danych wyjściowych.
Kiedy to zrobię, będę mógł łatwo zapisać te obrócone wiersze w innym pliku CSV.
Czy ktoś może mnie uruchomić?
Wielkiego, to jest bardzo schludny. Testuje i akceptuje, jeśli działa. –
Dziękuję również za wskazanie funkcji, które muszę poznać. –
Nie ma za co :-). – pad