小编Fri*_*der的帖子

ggplot2 geom_area边缘不垂直

我正在尝试使用ggplot填充不同颜色的曲线下面积的切片(x轴)geom_area.但我无论如何都无法让这些区域的边缘垂直.这是一个可重复性最小的例子:

library(ggplot2)
x = 1:10
pdat = data.frame(y = log(x), x = x)
ggplot(pdat, aes(x=x, y=y)) +
    geom_area(aes(y = ifelse(y > 2 & y < 5, y, 0)), 
              fill = "red", alpha = 0.5) +
    geom_line()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

谢谢你的建议!

r ggplot2

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

dplyr过滤后跨组的行数

我想要数据帧中每个组的计数和比例(所有元素)(过滤后).此代码生成所需的输出:

library(dplyr)
df <- data_frame(id = sample(letters[1:3], 100, replace = TRUE),
                 value = rnorm(100))

summary <- filter(df, value > 0) %>%
    group_by(id) %>%
    summarize(count = n()) %>%
    ungroup() %>%
    mutate(proportion = count / sum(count))

> summary
# A tibble: 3 x 3
     id count proportion
  <chr> <int>      <dbl>
1     a    17  0.3695652
2     b    13  0.2826087
3     c    16  0.3478261
Run Code Online (Sandbox Code Playgroud)

有一种优雅的解决方案,以避免ungroup()和第二summarize()步骤.就像是:

summary <- filter(df, value > 0) %>%
    group_by(id) %>%
    summarize(count = n(),
              proportion = n() …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

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

在 sklearn 管道中使用 spacy 作为分词器

我试图在更大的 scikit-learn 管道中使用 spacy 作为标记器,但始终遇到任务无法被腌制以发送给工作人员的问题。

最小的例子:

from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import RandomizedSearchCV
from sklearn.datasets import fetch_20newsgroups
from functools import partial
import spacy


def spacy_tokenize(text, nlp):
    return [x.orth_ for x in nlp(text)]

nlp = spacy.load('en', disable=['ner', 'parser', 'tagger'])
tok = partial(spacy_tokenize, nlp=nlp)

pipeline = Pipeline([('vectorize', CountVectorizer(tokenizer=tok)),
                     ('clf', SGDClassifier())])

params = {'vectorize__ngram_range': [(1, 2), (1, 3)]}

CV = RandomizedSearchCV(pipeline,
                        param_distributions=params,
                        n_iter=2, cv=2, n_jobs=2,
                        scoring='accuracy')

categories = ['alt.atheism', 'comp.graphics']
news = fetch_20newsgroups(subset='train',
                          categories=categories, …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn spacy

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

标签 统计

r ×2

dplyr ×1

ggplot2 ×1

python ×1

scikit-learn ×1

spacy ×1

tidyverse ×1