我正在尝试从生成的结果中访问变量的名称statsmodels
.我将在示例代码之后详细说明.
import scikits.statsmodels.api as sm
import pandas as pd
data = sm.datasets.longley.load()
df = pd.DataFrame(data.exog, columns=data.exog_name)
y = data.endog
df['intercept'] = 1.
olsresult = sm.OLS(y, df).fit()
Run Code Online (Sandbox Code Playgroud)
此摘要输出包括变量名称.当您调用类似olsresult.params的内容时,它会返回以下内容:
In [21]: olsresult.params
Out[21]:
GNPDEFL 15.061872
GNP -0.035819
UNEMP -2.020230
ARMED -1.033227
POP -0.051104
YEAR 1829.151465
intercept -3482258.634596
Run Code Online (Sandbox Code Playgroud)
现在我好奇的是创建类似字典的东西,其中变量名称作为键,参数值作为值.所以,像是{'GNPDELF':15.0618, 'GNP':-0.035819}
等等.如果不可能这样做,有没有其他方法可以单独访问变量名称和值?
我在python中编写了一些代码作为一个类,但是现在我正在尝试将它作为一个包进行分发,并且我在弄清楚不同部分应该如何组合时遇到了一些麻烦.
所以,正如我最初编写代码时,我有一个包含一些函数的类,其中包含一些__init__
函数.我现在已将这些函数中的每一个拆分为自己的以函数名称命名的文件,但我不确定将init函数放在何处,因为它需要参数.一个例子如下.
原始格式:
class className(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def func1(self):
def func2(self, arg3):
Run Code Online (Sandbox Code Playgroud)
使用:
import name
a = name.className(arg1, arg2)
a.func1()
a.func2(arg3)
Run Code Online (Sandbox Code Playgroud)
现在文件树是:
Name/
/className
__init__.py
func1.py
func2.py
Run Code Online (Sandbox Code Playgroud)
并包括其他功能.我想保持与原始相同的基本使用模式.
现在,我的问题是该__init__
功能应该去哪里?在__init__.py
文件里面?别的地方?另一个问题是我想在__init__.py
文件中放入一些导入; 我知道他们应该进入__init__.py
文件,但我不知道它们与__init__
函数的关系.任何帮助表示赞赏.
我正在尝试使用Sweave和R来报告我的统计分析结果.然而,我遇到的问题是我希望报告单尾p值.虽然知道单尾测试的价值当然很简单,但我很难弄清楚如何将单尾值输出到自动生成的表中.
基本上,我想创建一个文档,其中包含用于生成表格的代码,但是表格会报告一个单尾的p值.我甚至不确定这是否可行,但如果有任何信息会有所帮助.
编辑:
很抱歉没有代码可以开始.我认为可能有更普遍的答案,但下面有一些通用代码.我只是使用一个基本的OLS回归和一个名为apsrtable的包来生成表.
\documentclass[12pt, letterpaper]{article}
\usepackage{multirow}
\usepackage{dcolumn}
\begin{document}
<<results=hide,echo=false>>=
library("apsrtable")
x1 = c(100, 123, 1300, 1230, 5453, 4095, 403958, 309458, 2034, 12430)
x2 = c(1000, 2309184, 203948, 240983, 19874, 198479, 918374, 98374198, 8273498, 092834)
y = c(5,10,15,20,25,30,35,40,45,50)
results <- lm(y ~ x1)
results1 <- lm(y ~ x2)
@
\begin{table}
\begin{center}
<<results=tex,echo=false>>=
apsrtable(results, results1, se="pval", stars="default", model.counter=0, order="rl", Sweave=TRUE)
@
\end{center}
\end{table}
\end{document}
Run Code Online (Sandbox Code Playgroud)
所以,我基本上希望能够将单尾p值传递给apsrtable来制作表格.
作为一个补充,我对R一般都是新手,对R编程来说是非常新的,所以像操纵数据框这样的事情对我来说有点难以理解.
我正在尝试修改NVD3的堆积面积图示例.我可以用自己的数据绘制图表,一切正常.但是,数据解析似乎无法正常工作.就像在NVD3示例中一样,我将日期转换为Unix时间,就像在NVD3示例中一样,这些是数据中的第一个值.第二个值是计数.数据很好,但日期都是在1970年1月17日.这里可以看到一个例子.
我的数据如下:
var data = [
{'values': [[1403236800, 573], [1403323200, 632], [1403409600, 691],
[1403496000, 882], [1403582400, 898], [1403668800, 869], [1403755200, 853],
[1403841600, 787], [1403928000, 596], [1404014400, 505], [1404100800, 877],
[1404187200, 813], [1404273600, 816], [1404360000, 754], [1404446400, 765],
[1404532800, 531], [1404619200, 501], [1404705600, 786], [1404792000, 840],
[1404878400, 963], [1404964800, 857], [1405051200, 909], [1405137600, 620],
[1405224000, 694], [1405310400, 879], [1405396800, 926], [1405483200, 895],
[1405569600, 1044], [1405656000, 1201], [1405742400, 869], [1405828800, 757],
[1405915200, 1048], [1406001600, 972], [1406088000, 889], [1406174400, 941],
[1406260800, …
Run Code Online (Sandbox Code Playgroud)