这更像是一个概念性问题,我没有具体问题.
我学习进行数据分析蟒蛇,但我非常熟悉的R - 的关于R的伟大的事情之一是plyr(当然GGPLOT2的),甚至更好dplyr.Pandas当然也有分裂应用,但是在RI中可以做一些事情(在dplyr中,在plyr中有点不同,我现在可以看到dplyr是如何模仿对象编程的.符号)
data %.% group_by(c(.....)) %.% summarise(new1 = ...., new2 = ...., ..... newn=....)
Run Code Online (Sandbox Code Playgroud)
我在其中同时创建多个汇总计算
我怎么在python中这样做,因为
df[...].groupby(.....).sum() only sums columns,
Run Code Online (Sandbox Code Playgroud)
而在RI上,一次通话可以有一个均值,一个和,一个特殊函数等
我意识到我可以单独完成所有操作并合并它们,如果我使用的是python,那就没问题了,但是当选择工具时,你不需要键入和检查和验证的任何代码行都会增加时间
另外,在dplyr中你也可以添加mutate语句,所以在我看来它更强大 - 所以我对pandas或python缺少什么 -
我的目标是学习,我花了很多精力学习python,这是一项值得投资,但问题仍然存在
我有这个图表 - 我想在每个标签上添加文字N=xx来表示观察次数.我知道如何做到这一点,我已经在没有方面的图表上做到了.
当我在分面图表上尝试它时它不起作用(我在所有3个图表上的开放式刻度上获得了相同的N,在受限制的图表上获得相同的N等)
我希望有人可以指出解决方案,如何控制给定方面的元素?
library(ggplot2)
library(scales)
stat_sum_single <- function(fun, geom="point", ...) {
stat_summary(fun.y=fun, fill="red", geom=geom, size = 5, shape=24)
}
set.seed(1)
data1 <- data.frame(Physicians_In=sample(1:3,100,replace=T),Physicians_Out=sample(1:3,100,replace=T),share=runif(100,0,1))
data1$Physicians_In <- factor(data1$Physicians_In,levels=c(1,2,3),labels=c("Open","Restricted","Closed"))
data1$Physicians_Out <- factor(data1$Physicians_Out,levels=c(1,2,3),labels=c("Open","Restricted","Closed"))
access_ch3 <- ggplot(data1,aes(x=Physicians_In,y=share,fill=Physicians_In))+geom_boxplot()+stat_sum_single(mean)
access_ch3 <- access_ch3 +geom_jitter(position = position_jitter(width = .2),color="blue")+theme_bw()
access_ch3 <- access_ch3 + theme(legend.position="none") +scale_y_continuous("Gammagard Share",labels=percent)
gpo_labs5 <- paste(gsub("/","-\n",names(table(data1$Physicians_Out)),fixed=T),"\n(N=",table(data1$Physicians_Out),")",sep="")
access_ch3 <- access_ch3 + scale_x_discrete("Physician Access (In Hospital)",labels=gpo_labs5)
access_ch3 <- access_ch3 +facet_grid(.~Physicians_Out,labeller=label_both)
access_ch3
Run Code Online (Sandbox Code Playgroud)
我尝试创建9个标签并将该向量传递给scale_x_discrete元素,这只是回收了前3个,所以它也没有解决问题.
当我试图用ggplot绘制标准正态分布时(这很容易与stat_function一起使用)并且还为不同的五分位数绘制曲线下面积 - 这个问题出现了 -

在我创建了一个数据框,其中包含x的值范围和每个x的相应dnorm值为y之后,我能够使用geom_line和geom_ribbon执行此操作.
data = data.frame(x=seq(-3,3,length.out=1000))
data$y=dnorm(data$x)
data$Quintile <- with(data,ifelse(x<qnorm(0.2),"Bottom",
ifelse(x<qnorm(0.4),"Second",
ifelse(x<qnorm(0.6),"Middle",
ifelse(x<qnorm(0.8),"Fourth","Top")))))
data$Quintile <- factor(data$Quintile, levels=c("Bottom","Second","Middle","Fourth","Top"))
ggplot(data,aes(x=x,y=y,fill=Quintile))+geom_ribbon(aes(ymax=y),ymin=0,alpha=0.5)+
geom_line(color="black")+theme_bw()+theme(legend.position="bottom")+
scale_fill_manual(values=c("darkgreen","red","purple","blue","gray"))+
geom_vline(xintercept=c(qnorm(c(0.2,0.4,0.6,.8))),color=c("darkgreen","red","purple","blue"),size=1)+
scale_y_continuous("",breaks=NULL)+scale_x_continuous("",breaks=NULL)
Run Code Online (Sandbox Code Playgroud)
我发现使用stat_function更有吸引力,我想它必须创建一组y值来绘制线 - 我试图访问其他图层上的那些以添加彩色条带但是无法做到 - 我想看看是否有人可以解释如何做到这一点或为什么我们做不到
换句话说,不是自己生成数据,而是使用geom_line绘制曲线,我想做类似的事情
ggplot(NULL,aes(x=c(-3,3))) + stat_function(fun=dnorm)
Run Code Online (Sandbox Code Playgroud)
并使用stat_function生成的数据进行着色 - 我无法访问生成的y值(我尝试使用..y ..例如)
有没有办法使用这些值?如果是这样的话?
我已经尝试了一段时间才能将这个问题告诉wrk我不能 - 我阅读文档但我必须误解某些东西
我有一个长格式的数据框架,我想把它做得很宽 - 这很常见.但是我收到了一个错误
from pandas import DataFrame
data = DataFrame({'value' : [1,2,3,4,5,6,7,8,9,10,11,12],
'group' : ['a','a','a','b','b','b','b','c','c','c','d','d']})
data.pivot(columns='group')
Run Code Online (Sandbox Code Playgroud)
我得到的错误是(lats部分,因为它们相当广泛):ValueError:不能用null键标记索引
我在python(笔记本)中尝试了这个,并且在OS X中的常规python c命令行也尝试了相同的结果
感谢您的任何见解,我相信这将是一个基本的东西
我希望有一个人可以帮助我.
我试图在MS server 2008上使用SQL用户定义的函数来执行以下操作
我试图预测一个客户什么时候会离开银行,我会用一系列硬币投掷来做这件事,直到你离开.硬币抛出不一定总是在50/50,所以我可以将概率作为参数和当前客户任期传递给函数.
问题是它不允许在函数内部使用RAND(),我不明白为什么但是那很好,一定有理由.
这是我的功能:
create function NewTenure (@tenure integer, @p float)
returns integer
as
begin
declare @r float
declare @newten int
declare @attrite binary
set @attrite=0
set @newten = @tenure
set @r = RAND()
while (@attrite = 0)
begin
if (@r <= @p) set @attrite = 1;
if (@r > @p) set @newten = @newten+1
end
return(@newten)
end
Run Code Online (Sandbox Code Playgroud)
在我看来,我需要在0-1之间生成一个随机值,这样我就可以将它与确定客户是否离开的概率进行比较.如果不允许RAND(),是否有一个SQL技巧在函数内生成?(我多年前从学校知道我可以编写自己的随机数生成器,但我不想这样做,我也不认为我应该这样做,随机数是一个人们应该期望的基本计算机功能 - 我用过的任何其他语言都有一个)
我计划在新查询中调用该函数,以便在它们离开时更新具有预测期限的临时表,然后将其用于其他复杂计算.
我经常搜索,似乎没有找到答案.我想更新现有powerpoint图表中的数据.到目前为止,我能够打开他的演示文稿,选择页面,但我无法通过下面的最后一行.
我需要打开数据表,以便将数据粘贴到那里.我能够使用新图表,但随后数据表立即打开,但我想使用existign图表,因为它将根据需要进行所有格式化.然后,我将针对多个页面中的多个图表执行此操作,以更新新的客户组的标准预设.
有人可以显示我将如何打开数据,以便我可以选择正确的单元格并粘贴我的新数据(来自Excel的数据).由于很多原因我不想使用pasteexcel图表,我希望daa驻留在PowerPoint中.此宏从具有新数据的excel文件运行.
Sub test2()
Set rngData = Range("A1:D6")
Set ObjPPT = CreateObject("PowerPoint.Application")
Set ObjPresentation = ObjPPT.Presentations.Open("C:\Documents and Settings\ewnym5s\My Documents\Document_sample.pptx")
Set ObjSlide = ObjPresentation.Slides(1)
Set mychart = ObjSlide.Shapes("Chart 1").Chart
mychart.Select
Set wb = mychart.ChartData
Set ws = wb.Worksheets(1)
Run Code Online (Sandbox Code Playgroud)