运行 as.Node 来自 R 中的 data.tree 包
Running as.Node from data.tree package in R
我正在尝试使用 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)
任何人都可以就 'unused argument (quote())' 的含义提供一些指导吗?我试过用谷歌搜索它,发现在某些情况下,这意味着一个函数或术语已经在另一个上下文中定义。但是我还是太菜鸟了,不明白这里的意思。
我 运行 在 Mac OS 10.11.5 上安装 rStudio 0.99.896 和 R 3.2.4。我会分享我的数据集,只是它非常庞大,而且我不确定是哪一行导致了问题...
我不能以此为荣; Christoph Glur(请参阅主要 post 上的评论)解决了这个问题。但分享原因可能对其他人有用,我的解决方案:
问题是一些日志文件包含 data.tree 包的保留字之一,在本例中为 "path"。行的格式是“/something/something/path/something/something.jpg”,因此 data.tree 读作 "path" 作为一个独立的词。还有其他实例 "path" 作为较大单词的一部分,例如 "pathString" 或 "pathTo",但不会导致错误。
一旦他弄明白了,我的解决方案是 运行 在终端中的所有日志文件上执行以下命令:
sed -i '' 's/\/path\//\/spath\//' *.log
我还是个新手,但据我了解,这意味着所有 .log 文件中的 "find and replace, in place, instances of "/path/" 和 "/spath/"。"我实际上并不关心那个词,path vs. spath(这是胡言乱语),所以改变它并不重要。现在 as.Node() 函数 运行 在数据集上正确运行。
谢谢你,克里斯托夫!
我正在尝试使用 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)
任何人都可以就 'unused argument (quote())' 的含义提供一些指导吗?我试过用谷歌搜索它,发现在某些情况下,这意味着一个函数或术语已经在另一个上下文中定义。但是我还是太菜鸟了,不明白这里的意思。
我 运行 在 Mac OS 10.11.5 上安装 rStudio 0.99.896 和 R 3.2.4。我会分享我的数据集,只是它非常庞大,而且我不确定是哪一行导致了问题...
我不能以此为荣; Christoph Glur(请参阅主要 post 上的评论)解决了这个问题。但分享原因可能对其他人有用,我的解决方案:
问题是一些日志文件包含 data.tree 包的保留字之一,在本例中为 "path"。行的格式是“/something/something/path/something/something.jpg”,因此 data.tree 读作 "path" 作为一个独立的词。还有其他实例 "path" 作为较大单词的一部分,例如 "pathString" 或 "pathTo",但不会导致错误。
一旦他弄明白了,我的解决方案是 运行 在终端中的所有日志文件上执行以下命令:
sed -i '' 's/\/path\//\/spath\//' *.log
我还是个新手,但据我了解,这意味着所有 .log 文件中的 "find and replace, in place, instances of "/path/" 和 "/spath/"。"我实际上并不关心那个词,path vs. spath(这是胡言乱语),所以改变它并不重要。现在 as.Node() 函数 运行 在数据集上正确运行。
谢谢你,克里斯托夫!