我正在尝试打印到控制台(或输出窗口)以进行调试.例如:
\documentclass{article}
\begin{document}
<<foo>>=
print(getwd())
message(getwd())
message("ERROR:")
cat(getwd(), file=stderr())
not_a_command() # Does not throw an error?
stop("Why doesn't this throw an error?")
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
我在输出PDF中得到了结果,但我的问题是我有一个未完成的脚本(所以没有输出PDF来检查),我试图理解为什么.如果编织未成功完成,似乎也没有日志文件输出.
我使用的是knitr 1.13和Rstudio 0.99.896.
编辑:如果我改为Sweave,上面的代码将正确输出(并打破),这使我认为这是一个knitr问题.
假设我有以下数据框:
df = pd.DataFrame(dict(Foo=['A', 'A', 'B', 'B'], Bar=[1, 2, 3, 4]))
Run Code Online (Sandbox Code Playgroud)
IE:
Bar Foo
0 1 A
1 2 A
2 3 B
3 4 B
Run Code Online (Sandbox Code Playgroud)
然后我创建一个 pandas.GroupBy 对象:
g = df.groupby('Foo')
Run Code Online (Sandbox Code Playgroud)
我如何从 中获取按最初名为 的列分组的g事实?gFoo
如果我这样做g.groups我会得到:
{'A': Int64Index([0, 1], dtype='int64'),
'B': Int64Index([2, 3], dtype='int64')}
Run Code Online (Sandbox Code Playgroud)
这告诉我该列采用的值Foo(“A”和“B”),但不是原始列名称。
现在,我可以做这样的事情:
g.first().index.name
Run Code Online (Sandbox Code Playgroud)
g但奇怪的是其中没有包含组名的属性,所以我觉得我一定错过了一些东西。特别是,如果g按多列分组,则上述方法不起作用:
df = pd.DataFrame(dict(Foo=['A', 'A', 'B', 'B'], Baz=['C', 'D', 'C', 'D'], Bar=[1, 2, 3, 4]))
g = df.groupby(['Foo', 'Baz'])
g.first().index.name # …Run Code Online (Sandbox Code Playgroud)