我有一组包含不同列的数据框.我想将它们按行组合成一个数据帧.我习惯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) 我今天安装了 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 中,单元格如下所示:
我有一个简单的数据框,包含 3 列:name、goal和actual。因为这是更大数据帧的简化,所以我想使用 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 并且仅使用第一个元素
我有一个包含 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) 我想比较两个嵌套线性模型,将它们称为 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 个嵌套线性模型。
我认为这就是我需要的:
但我不确定传递这个函数到底是什么。如果有人可以提供或指出一个例子,那将非常有帮助。
我想创建一个函数,根据传递给它的参数创建不同类型的绘图。如果我创建以下数据
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 …
我使用以下代码在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 轴标签的字体大小。
我以以下方式创建图:
## 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 ×5
plotly ×3
python ×2
data.table ×1
dplyr ×1
latex ×1
markdown ×1
rbind ×1
scikit-learn ×1
seaborn ×1
statsmodels ×1