小编use*_*116的帖子

R dplyr滚动总和

我正在通过dplyr实现滚动和计算,但是在我的数据库中,我有许多变量只有一个或只有几个观察值,导致(k小于n)错误.我试图在这个带有过滤器和合并的例子中解决这个问题,但是想知道是否有办法在dplyr中更优雅和自动地做到这一点.请看下面的例子

    #create data
    dg = expand.grid(site = c("Boston","New York"),
                     year = 2000:2004)
    dg$animal="dog"
    dg$animal[10]="cat";dg$animal=as.factor(dg$animal)
    dg$count = rpois(dim(dg)[1], 5) 
Run Code Online (Sandbox Code Playgroud)

如果我将运行下面的代码,因为我只有一行"cat",一个得到(错误:k <= n不是真的)错误

#running average
dg2 = dg %>%
  arrange(site,year,animal) %>%
  group_by(site,animal) %>%
#   filter(animal=="dog") %>%
  mutate(roll_sum = rollsum(x = count, 2, align = "right", fill = NA))
Run Code Online (Sandbox Code Playgroud)

我试图通过使用以下代码解决这个问题,该代码过滤掉"cat"值并进行后续合并,但我想知道是否可以直接在dplyr中执行此操作,尤其是在此解决方案中,必须指定/事先知道每个变量的唯一行数,如果改变滚动总和的范围等,则手动调整.

dg2 = dg %>%
  arrange(site,year,animal) %>%
  group_by(site,animal) %>%
  filter(animal=="dog") %>%
  mutate(roll_sum = rollsum(x = count, 2, align = "right", fill = NA))

merge(dg,dg2,c("site", "year","animal","count"),all.x=TRUE)

       site year animal count roll_sum
1    Boston 2000    dog …
Run Code Online (Sandbox Code Playgroud)

r dplyr

17
推荐指数
2
解决办法
2万
查看次数

ImageFont IO错误:无法打开资源

我是Python的新手,并尝试运行以下代码.我收到以下错误"IOError: cannot open resource".这是因为某些图像特征不再存在(例如Coval.otf),还是由于写入/读取限制?请让我知道 - 非常感谢,W

import numpy as np
from PIL import Image, ImageDraw, ImageFont
from skimage import transform as tf

def create_captcha(text, shear=0, size=(100,24)):
    im = Image.new("L", size, "black")
    draw = ImageDraw.Draw(im)
    font = ImageFont.truetype(r"Coval.otf", 22)
    draw.text((2, 2), text, fill=1, font=font)
    image = np.array(im)
    affine_tf = tf.AffineTransform(shear=shear)
    image = tf.warp(image, affine_tf)
    return image / image.max()

%matplotlib inline
from matplotlib import pyplot as plt
image = create_captcha("GENE", shear=0.5)
Run Code Online (Sandbox Code Playgroud)

python io python-imaging-library

13
推荐指数
3
解决办法
2万
查看次数

在没有ddply和合并的情况下计算"组特征"

我想知道是否有一种更直接的方式来计算某种类型的变量而不是我通常采用的方法....

下面的例子可能最好地解释了它.我有一个包含2列的数据框(水果和水果是否腐烂).我想,对于每一行,添加例如腐烂的同一类别的水果的百分比.例如,苹果有4个条目,其中2个是烂的,因此苹果的每一行应为0.5.目标值(纯粹如图)包含在"所需结果"列中.

我以前通过*在fruit变量上使用"ddply"命令(以sum/lenght作为函数)来解决这个问题,创建一个新的3*2数据帧*使用"merge"命令将这些值链接回旧数据帧.

这感觉就像一个迂回的方式,我想知道是否有更好/更快的方式这样做!理想的是一种通用的方法,如果一个而不是百分比需要确定例如所有水果是否腐烂,任何水果腐烂等等,都可以轻松调整....

提前谢谢了,

w ^

    Fruit Rotten Desired_Outcome_PercRotten
1   Apple      1                        0.5
2   Apple      1                        0.5
3   Apple      0                        0.5
4   Apple      0                        0.5
5    Pear      1                       0.75
6    Pear      1                       0.75
7    Pear      1                       0.75
8    Pear      0                       0.75
9  Cherry      0                          0
10 Cherry      0                          0
11 Cherry      0                          0

#create example datagram; desired outcome columns are purely inserted as illustrative of target outcomes
Fruit=c(rep("Apple",4),rep("Pear",4),rep("Cherry",3))
Rotten=c(1,1,0,0,1,1,1,0,0,0,0)
Desired_Outcome_PercRotten=c(0.5,0.5,0.5,0.5,0.75,0.75,0.75,0.75,0,0,0)
df=as.data.frame(cbind(Fruit,Rotten,Desired_Outcome_PercRotten))        
df
Run Code Online (Sandbox Code Playgroud)

merge r plyr

7
推荐指数
3
解决办法
929
查看次数

R2值 - dplyr和扫帚

我正在使用dplyr和扫帚组合(如下所示),然后使用dplyr拟合几个回归模型,以按组提取回归系数.但是 - 我也对每个回归的R2值感兴趣(不仅仅是对于整个模型).我试图使用扩充和扫视功能 - 但无法提取R2值.是否有捷径可寻?

提前谢谢了!

library(dplyr)
library(broom)

df.h = data.frame( 
  hour     = factor(rep(1:24, each = 21)),
  price    = runif(504, min = -10, max = 125),
  wind     = runif(504, min = 0, max = 2500),
  temp     = runif(504, min = - 10, max = 25)  
)

dfHour = df.h %>% group_by(hour) %>%
  do(fitHour = lm(price ~ wind + temp, data = .))

# get the coefficients by group in a tidy data_frame
dfHourCoef = tidy(dfHour, fitHour)
dfHourCoef

   hour …
Run Code Online (Sandbox Code Playgroud)

regression r dplyr broom

7
推荐指数
1
解决办法
701
查看次数

Tensorflow - 视频分类

TensorFlow的开源版本是否适合视频分类 - 类似于http://vision.stanford.edu/pdf/karpathy14.pdf中所述的示例?如果不是 - 公共领域是否还有其他可用于此目的的软件包?

video tensorflow

7
推荐指数
1
解决办法
2769
查看次数

使用ggmap世界地图

我正在尝试使用ggmappackage/get_map功能(请参阅下面的代码)结合使用获取整个世界的简单栅格地图ggplot2.缩放级别仅朝向"3",并且不允许进一步缩小

获得一张世界地图似乎是不可能的(如说明中所述ggmap:( "maps of the whole world currently not supported").也许由于缺乏理解为什么这是不可能/不支持的,有没有一种解决方案可以获得世界地图视图?

关于问题的编辑/更新:我试图按照建议使用世界地图 - 但由于某种原因我不明白为什么它不允许我在图中绘制点(这是最初的目标,并且确实有效in ggmap) - 觉得我做了一些愚蠢的事情/犯了一些基本的错误.我收到错误消息"Error in eval(expr, envir, enclos) : object 'group' not found"

编辑 - 不幸的是我使用OpenStreetMap收到错误消息(java错误.正在修复此问题 - 但非OpenStreetMap解决方案会很棒......)

总结一下 - 这种ggmap方法有效geom_point,但我不能得到一个完整的世界地图.这种worldmap方法应该有效,但由于某种原因无法获得积分.....

以下新代码:

ggmap 做法:

library(ggmap)
library(ggplot2)

reclat=c(50,20,30,40)
reclong=c(30,40,30,50)         
points=as.data.frame(cbind(reclat,reclong))

al1 = get_map(location = 'Europe', zoom = 3, color="bw",maptype = "satellite")
map = ggmap(al1)
map 

#this works
map+geom_point(data=points, aes(x=reclong, y=reclat, colour="red"))
Run Code Online (Sandbox Code Playgroud)

worldmap 做法:

world …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggmap

6
推荐指数
1
解决办法
9009
查看次数

Spyder - python - 安装外部包

我刚刚开始使用python(在Windows中,64位) - 我有一个关于如何在anaconda/spyder环境中安装外部包的基本问题.据我所知,对于大多数套餐,人们可以简单地使用"conda install bunnies".但是,某些软件包不在anaconda存储库中,可能已安装在外部(例如,从github).对于那些软件包,为了让spyder识别这个软件包 - 除此之外还需要更新Spyder中的PYTHONPATH管理器以包含已下载此软件包的目录(例如c:\ users\bunnies)吗?或者应该采取更多步骤/是否有更快的方法?

python packages spyder anaconda

4
推荐指数
1
解决办法
4万
查看次数

使用xyplot的不同类型的线的不同颜色

这可能是一个非常基本的问题,但我在一个xyplot中在Lattice中苦苦挣扎,我绘制了曲线和回归线(类型"r",类型"l"),以给每一行提供不同的颜色.

我已经基本上尝试了下面的代码和?cars数据集.

xyplot(speed ~ dist, data=cars, type=c("r", "l"), 
       col=c("red", "black"), 
       auto.key=list(lines=TRUE))
Run Code Online (Sandbox Code Playgroud)

问题是它绘制了两条线,但它们都是红色的....

r graph lattice

1
推荐指数
1
解决办法
5652
查看次数

使用ddply计算组特征

我有一个与计算"组特征"相关的后续问题,没有ddply和merge

我有一个类似的数据框(如下所示),但试图计算同一类别中其他水果中腐烂水果的百分比.因此,我不应该考虑到有问题的水果本身是否腐烂.每个数据帧有希望澄清这一点,所需的结果列纯粹是为了示例目的而插入的.

理想情况下,我想使用ddply(沿着ddply(df,.(Fruit),mutate,Perc = sum(Rotten)/ length(Rotten))).但是,我找不到一种方法来只考虑同一组中其他行的值.我想我可以使用基于相关行的值的if语句组合,但我想知道是否有更优雅的方法来实现这一点?非常感谢,W

    Fruit Rotten Desired_Outcome
1   Apple      1            0.33
2   Apple      1            0.33
3   Apple      0            0.66
4   Apple      0            0.66
5    Pear      1            0.66
6    Pear      1            0.66
7    Pear      1            0.66
8    Pear      0            1.00
9  Cherry      0            0.00
10 Cherry      0            0.00
11 Cherry      0            0.00
12 Banana      1              NA

Fruit=c(rep("Apple",4),rep("Pear",4),rep("Cherry",3),"Banana")
Gender=c(rep("Male",3),rep("Female",3))
Rotten=c(1,1,0,0,1,1,1,0,0,0,0,1)
Desired_Outcome=c(0.33,0.33,0.66,0.66,0.66,0.66,0.66,1,0,0,0,NA)
df=data.frame(Fruit,Rotten,Desired_Outcome)     
df
Run Code Online (Sandbox Code Playgroud)

aggregate r plyr

1
推荐指数
1
解决办法
826
查看次数