小编Mic*_*iak的帖子

使用不同列来rbind data.frames的有效方法

我有一组包含不同列的数据框.我想将它们按行组合成一个数据帧.我习惯plyr::rbind.fill这样做.我正在寻找能够更有效地完成这项工作的东西,但这与此处给出的答案类似

require(plyr)

set.seed(45)
sample.fun <- function() {
   nam <- sample(LETTERS, sample(5:15))
   val <- data.frame(matrix(sample(letters, length(nam)*10,replace=TRUE),nrow=10))
   setNames(val, nam)  
}
ll <- replicate(1e4, sample.fun())
rbind.fill(ll)
Run Code Online (Sandbox Code Playgroud)

r rbind data.table

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

LaTex 不会在 VS Code 中的 jupyter 笔记本中渲染,但会运行 jupyter 笔记本

我今天安装了 VS Code 并创建了一个非常简单的 jupyter 笔记本,它运行时没有任何错误,但即使在安装LaTex Workshop扩展后也不会在 VS Code 中渲染 LaTex 。

当我直接在 jupyter 中运行同一个笔记本时,它渲染得很好。

这是相关降价单元中的代码:

### This is another markdown cell with Latex

This equation defines eigenvalues and eigenvectors: $Mx = \lambda x$

another equation:
$\begin{align*}
(a+b)^2 = a^2+2ab+b^2
\end{align*}$
Run Code Online (Sandbox Code Playgroud)

在 jupyter 中,单元格如下所示:

在此输入图像描述

在 VS Code 中,单元格如下所示:

在此输入图像描述

markdown latex visual-studio-code jupyter-notebook

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

如何将匿名函数传递给 dplyr summarise

我有一个简单的数据框,包含 3 列:namegoalactual。因为这是更大数据帧的简化,所以我想使用 dplyr 来计算每个人实现目标的次数。

df <- data.frame(name = c(rep('Fred', 3), rep('Sally', 4)),
                 goal = c(4,6,5,7,3,8,5), actual=c(4,5,5,3,3,6,4))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

结果应该是这样的:

在此输入图像描述

我应该能够传递类似于下面所示的匿名函数,但语法不太正确:

library(dplyr)
g <- group_by(df, name)
summ <- summarise(g, met_goal = sum((function(x,y) {
                                       if(x>y){return(0)}
                                       else{return(1)}
                                     })(goal, actual)
                                    )
                  )
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我看到以下 3 个错误:

警告消息: 1:在 if (x == y) { 中:条件长度 > 1 并且仅使用第一个元素

r anonymous-function dplyr

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

按 R 因子使绘图和迹线颜色相同

我有一个包含 3 个因素的散点图。我添加了 3 条迹线,其中每条迹线对应一个因子。我希望散点图和迹线的颜色相同。这是生成适当测试数据的简单函数:

## generate test data
getTestData <- function(seed_val=711, noise=1.0) {
    set.seed(seed_val)
    d <- seq(as.Date('2017/01/01'), as.Date('2017/01/08'), "days")
    first_name <- rep("Jane", 8)
    first_name <- append(first_name, rep("Fred", 8))
    first_name <- append(first_name, rep("Sally", 8))
    y1_vals <- seq(1, 3*8, 1)
    y2_vals <- rnorm(3*8, mean=y1_vals, sd=noise)
    dat <- data.frame(date=d, f_name=first_name, y1=y1_vals, y2=y2_vals,
                      stringsAsFactors = FALSE)
    return(dat)
}
Run Code Online (Sandbox Code Playgroud)

如果我创建一个数据框并将其传递给plot_ly,如下所示:

library(plotly)
library(dplyr)
df <- getTestData()
p1 <- plot_ly(df, x=~date, y=~y1, color=~f_name,
          type = 'scatter', mode = "lines+markers") %>% 
      layout(yaxis = list(title = "some important …
Run Code Online (Sandbox Code Playgroud)

r plotly

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

如何进行 F 检验以比较 Python 中的嵌套线性模型?

我想比较两个嵌套线性模型,将它们称为 m01 和 m02,其中 m01 是简化模型,m02 是完整模型。我想做一个简单的 F 检验,看看完整模型是否比简化模型增加了显着的效用。

这在 R 中非常简单。例如:

mtcars <- read.csv("https://raw.githubusercontent.com/focods/WonderfulML/master/data/mtcars.csv")
m01 <- lm(mpg ~ am + wt, mtcars)
m02 <- lm(mpg ~ am + am:wt, mtcars)
anova(m01, m02)
Run Code Online (Sandbox Code Playgroud)

给我以下输出:

在此处输入图片说明

这告诉我添加am: wt交互项显着改善了模型。有没有办法在 Python/sklearn/statsmodels 中做类似的事情?

编辑:我在发布这个问题之前看过这个问题,但无法弄清楚它们是如何相同的。另一个问题是对两个向量进行 F 检验。这个问题是关于比较 2 个嵌套线性模型。

我认为这就是我需要的:

http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.f_regression.html#sklearn.feature_selection.f_regression

但我不确定传递这个函数到底是什么。如果有人可以提供或指出一个例子,那将非常有帮助。

python linear-regression scikit-learn statsmodels

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

将变量作为参数传递给 plot_ly 函数

我想创建一个函数,根据传递给它的参数创建不同类型的绘图。如果我创建以下数据

library(plotly)
#### test data
lead <- rep("Fred Smith", 30)
lead <- append(lead, rep("Terry Jones", 30))
lead <- append(lead, rep("Henry Sarduci", 30))
proj_date <- seq(as.Date('2017-11-01'), as.Date('2017-11-30'), by = 'day')
proj_date <- append(proj_date, rep(proj_date, 2))
set.seed(1237)
actHrs <- runif(90, 1, 100)
cummActHrs <- cumsum(actHrs)
forHrs <- runif(90, 1, 100)
cummForHrs <- cumsum(forHrs)
df <- data.frame(Lead = lead, date_seq = proj_date,
                 cActHrs = cummActHrs,
                 cForHrs = cummForHrs)
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法绘制它:

plot_ly(data = df, x = ~date_seq, y = ~cActHrs, split = ~Lead)
Run Code Online (Sandbox Code Playgroud)

如果我制作了一个如下所示的makePlot …

r plotly

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

如何更改seabornpairsplot中轴标签和值的大小

我使用以下代码在seaborn中创建了一个pairplot:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

mtcars = pd.read_csv("https://raw.githubusercontent.com/focods/WonderfulML/master/data/mtcars.csv")
sns.pairplot(mtcars, kind='reg', diag_kind='hist')
Run Code Online (Sandbox Code Playgroud)

并得到这个图:

在此输入图像描述

字体很小,我正在想办法增加大小。我在文档中看到一个参数可能就是我正在寻找的参数:plot_kws,它是一本字典,但是如何找出可用的键及其用途?

所以我有两个问题。首先,是如何阅读文档,以便我可以找出该字典的键是什么。其次,如何增加该图 y 轴标签的字体大小。

python seaborn

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

图解R阶散点图图例条目

我以以下方式创建图:

## generate test data
getTestData <- function(seed_val=711, noise=1.0) {
    set.seed(seed_val)
    d <- seq(as.Date('2017/01/01'), as.Date('2017/01/08'), "days")
    first_name <- rep("Jane", 8)
    first_name <- append(first_name, rep("Fred", 8))
    first_name <- append(first_name, rep("Sally", 8))
    y1_vals <- seq(1, 3*8, 1)
    y2_vals <- rnorm(3*8, mean=y1_vals, sd=noise)
    dat <- data.frame(date=d, f_name=first_name, y1=y1_vals, y2=y2_vals,
                  stringsAsFactors = FALSE)
    return(dat)
}

dat <- getTestData()
library(dplyr)
library(plotly)
p1 <- plot_ly(dat, x=~date, y=~y1, color=~f_name,
              type = 'scatter', mode = "lines+markers") %>% 
    layout(yaxis = list(title = "some important y value")) %>% 
    add_trace(y=~y2, name='actual', …
Run Code Online (Sandbox Code Playgroud)

r plotly

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