作为.Node从R中的data.tree包运行



我正在尝试使用R中data.tree库中的as.Node函数,将一组媒体服务器日志数据可视化为树。我已经按月份和年份对原始数据帧进行了子集设置,这样我就可以一次运行一个月的数据。我的函数代码用于将数据转换为树,然后将其打印为.csv,如下所示:

treetrimmer2 <- function(x, y) {
urimodel <- as.Node(x)
uridf <- ToDataFrameTree(urimodel, "level", "count")
uridf <- filter(uridf, level <= y, count != 0)
filename <- paste(x$year[1], x$month[1], ".csv", sep="")
write.csv(uridf, file = filename, fileEncoding = "CP1252")
}

有些月结束时没有任何问题。然而,其他几个月给了我以下错误(和回溯):

Error in (function ()  : unused argument (quote(<environment>)) 
7 (function () 
{
c(self$parent$path, self$name)
})(quote(<environment>)) 
6 self$AddChildNode(child) 
5 mynode$AddChild(path) 
4 FromDataFrameTable(x, pathName, pathDelimiter, colLevels, na.rm) 
3 as.Node.data.frame(x) 
2 as.Node(x) at media_visualizer.R#63
1 treetrimmer2(uricut$`2015.06`, 5)

有人能给我一些关于"未使用的参数(quote())"的意思的指导吗?我试过在谷歌上搜索它,发现在某些情况下,这意味着一个函数或术语已经在另一个上下文中定义了。但我还是个新手,不明白这在这里意味着什么。

我在Mac OS 10.11.5上运行rStudio 0.99.896和R 3.2.4。我会分享我的数据集,只是它非常庞大,我不确定是哪几行造成了问题。。。

我不能为此申请信贷;Christoph Glur(见主要帖子上的评论)发现了这一点。但其他人分享原因和我的解决方案可能会很有用:

问题是,一些日志文件包含data.tree包的一个保留字,在本例中为"path"。行的格式是"something/something/pathsomething/omething.jpg",因此data.tree将"path"作为一个独立单词读取。"path"作为较大单词的一部分的其他实例,例如"pathString"或"pathTo",并没有导致错误。

一旦他弄清楚了,我的解决方案是在终端中的所有日志文件上运行以下命令:

sed -i '' 's//path///spath//' *.log

我还是个新手,但据我所知,这意味着"在所有.log文件中找到并替换"/path/"one_answers"/spath/"的实例。"我实际上并不在乎path和spath(这是胡言乱语)这一词,所以更改它并不重要。现在as.Node()函数在数据集上正确运行。

谢谢你,克里斯托夫!

最新更新