考慮以下tree
:計算每個文件夾在複雜文件夾結構中有多少個文件夾?
library(data.tree)
acme <- Node$new("Acme Inc.")
accounting <- acme$AddChild("Accounting")
software <- accounting$AddChild("New Software")
standards <- accounting$AddChild("New Accounting Standards")
research <- acme$AddChild("Research")
newProductLine <- research$AddChild("New Product Line")
newLabs <- research$AddChild("New Labs")
it <- acme$AddChild("IT")
outsource <- it$AddChild("Outsource")
agile <- it$AddChild("Go agile")
goToR <- it$AddChild("Switch to R")
我再要計算averageBranchingFactor
:
averageBranchingFactor(acme)
這就產生2.5
但是,由於種種原因,我希望能夠得到所有分枝因子,不僅是平均分枝因子。例如,我需要這樣做來統計比較兩個文件結構,以考慮平均分支因素的顯着差異。
根據manual對於data.tree
,AverageBranchingFactor()
函數執行以下操作:「計算每個非葉具有的分支的平均數量」。因此,我第一次嘗試以下操作:
acme.df <- ToDataFrameTree(acme, "averageBranchingFactor")
mean(acme.df$averageBranchingFactor[acme.df$averageBranchingFactor>0])
這就產生2.375
,然後引導我去嘗試一個簡單的版本:
mean(acme.df$averageBranchingFactor)
這就產生0.8636364
如何在所有到達個別分支因素的平均值爲2.5
?
理想情況下,我想創建一個data.frame
,列出每個文件夾,其中包含爲每個文件夾列出分支因子的變量。例如,我有這個非常簡單的文件夾結構:
top_level_folder
sub_folder_1
sub_folder_2
sub_folder_3
回答這個問題會涉及創建輸出看起來像這樣:
Folders Subfolders (BranchingFactor)
top_level_folder 2
sub_folder_1 0
sub_folder_2 1
sub_folder_3 0
能夠容易地生成第一列通過調用list.dirs("/Users/username/Downloads/top_level/")
,但我不知道如何生成第二列。請注意,第二列是非遞歸的,這意味着子文件夾內的文件夾不計算在內(即top_level_folder
僅包含2個子文件夾,即使sub_folder_2
包含另一個文件夾sub_folder_2
)。
如果您想了解您的解決方案是否可縮放,請下載Rails代碼庫:https://github.com/rails/rails/archive/master.zip並嘗試使用Rails更復雜的文件結構。
將您的代碼應用於[https://github.com/rails/rails/archive/master.zip](https://github.com/rails/rails/archive/master.zip),'result'是不正確的 – parth
原因是:'長度(dir(path = dirs [i]))'也計數'.yml'和'.md'文件 – parth
你是對的謝謝你!查看編輯後的版本。看起來,前面的代碼(在循環中使用'dir'而不是'list.dirs'來計算所有文件和目錄。 – Gilles