1
gnucash mysql dbのアカウント用の子フィールドと親フィールドを持つデータフレームがあります。私は、アカウント階層をデータフレームに保存したいと思います。過去には、mySQLで再帰的な結合を使用しましたが、階層が深くなるにつれて扱いにくくなります。あなたはまたあなたの木がどれだけ多くのレベルを知る必要があります。私は階層構造を構築するためにRでより簡単な方法があることを望んでいる(最大深度を知っているかどうかにかかわらず)。R階層データの再帰的マージ
サンプルデータ:
account_id <- c(1:11)
account_name <- c('root_account','dining', 'food', 'discretionary_expense',
'expenses', 'base_salary_wife', 'base_salary_husband',
'base_salary', 'salary', 'taxable_income',
'income')
account_parentid <- c(NA,3,4,5,1,8,8,9,10,11,1)
test.data <- data.frame(account_id, account_name, account_parentid)
所望の出力:
account_id account_name account_parentid lvl2_parentid lvl3_parentid lvl4_parentid lvls
1 1 root_account NA NA NA NA NA
2 2 dining 3 4 6 NA 4
3 3 food 4 5 NA NA 3
4 4 discretionary_expense 5 NA NA NA 2
5 5 expenses 1 NA NA NA 1
6 6 base_salary_wife 8 9 10 11 5
7 7 base_salary_husband 8 9 10 11 5
8 8 base_salary 9 10 11 NA 4
9 9 salary 10 11 NA NA 3
10 10 taxable_income 11 NA NA NA 2
11 11 income 1 NA NA NA 1