回答有关 lapply始终返回错误处理NA或NULL元素失败时的错误处理问题,即
myfun <- function(s) {
tryCatch(doSomething(s), error = function(e) { return(NULL) }
}
Run Code Online (Sandbox Code Playgroud)
然而,这还不够普遍,因为doSomething(s)可能会返回NULL或NA本身。因此,理想情况下,我希望myfun编写这样的内容,以便lapply(mylist, myfun)我能够以某种方式获得失败元素的所有索引。这个怎么做?
ggplot2使用Hmisc:smean_cl_boot它stat_summary作为
stat_summary(fun.data = mean_cl_boot, geom = "pointrange")
Run Code Online (Sandbox Code Playgroud)
是否可以指定90%置信区间而不是默认值95?在Hmisc::smean_cl_boot它是一种选择,但我不知道如何通过它传递ggplot2的语法.我不想定义自定义函数.
我正在使用ipython 4.1.2(通过Anaconda安装).我找到了配置文件位置(这是默认设置)
ipython locate profile
/home/myname/.ipython/profile_default
Run Code Online (Sandbox Code Playgroud)
ipython kernel 跑得很好,说
要将另一个客户端连接到此内核,请使用:--existing kernel-8664.json
但是,当我向内看时/home/myname/.ipython/profile_default/security,它完全是空的.
这是什么问题?
当我想使用循环为几个数据帧分配新值时,就会出现问题.
我知道正确的方法
for (df.name in c('df1', 'df2', 'df3')) {
assign(df, new.value)
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么我不能这样做
for (df.name in c('df1', 'df2', 'df3')) {
eval(parse(text=df.name)) <- new.value
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有以下DataFrame同MultiIndex.
df2 = pd.DataFrame({'var1': np.arange(5)}, index=pd.MultiIndex.from_tuples([('A', 'a'), ('A', 'b'), ('B', 'c'), ('B', 'd'), ('C', 'e')]))
[Out]:
var1
A a 0
b 1
B c 2
d 3
C e 4
Run Code Online (Sandbox Code Playgroud)
如果我将它子集化,它将保留完整索引(即使我使用.copy())
df2.loc[['A', 'C']].copy().index
[Out]: MultiIndex(levels=[['A', 'B', 'C'], ['a', 'b', 'c', 'd', 'e']],
labels=[[0, 0, 2], [0, 1, 4]])
Run Code Online (Sandbox Code Playgroud)
这种行为背后的理由是什么?如何防止这种情况发生?我希望新索引只包含[['A', 'C'], ['a', 'b', 'e'].
我知道使用Python的Beautiful Soup抓取HTML的基础知识.但是,这个足球统计页面会进行AJAX调用,以获取玩家在几分钟内播放的数据.(我使用firebug确定了网络呼叫).
我的问题:是否有可能使用python"刮"这些信息?我需要哪些工具以及HTML以外的其他工具?(我目前正在阅读JavaScript和AJAX).
我为这个非特定问题道歉,但我甚至不知道谷歌如何处理可能存在或可能不存在的工具.
更新:几天后,我想出了一个使用SeleniumPython结合的解决方案PhantomJS.我基本上习惯Selenium去每个链接,等待页面加载,然后抓取信息.PhantomJS作为无头网络驱动程序Selenium.
我理解为什么mods要关闭它,但人们给我这里的建议非常有帮助,因为他们让我朝着正确的方向前进.我的问题不是关于什么工具最好,而是更多关于如何在Python中做到这一点.
> d <- data.frame(s=c("a", "b", "c"), n=c(1,2,3))
> apply(d, 2, class)
Run Code Online (Sandbox Code Playgroud)
即使d有一个字符串和一个数字列,第二行显示一切都是字符?为什么?
由于这种方法不准确,有什么方法可以检查数据框中多列的类型?
我有以下矩阵
M <- structure(c(0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0), .Dim = c(5L, 5L))
Run Code Online (Sandbox Code Playgroud)
我想找到正好为1的特征值.我认为这样可行:
Re(eigen(M)$values) == 1 & Im(eigen(M)$values) == 0
Run Code Online (Sandbox Code Playgroud)
但Re(eigen(M)$values) == 1不认为第5个特征值等于1,即使它确实如此.我错过了什么?
编辑:只要它指出了一个浮点问题,我研究了一点,了解几种解决方案,包括使用abs(value) < tol,all.equal和signif.答案可以讨论这些选项吗?