小编gre*_*ane的帖子

使用dplyr连接列

我有一个data_frame我希望vector成为元素串联的地方A.所以

df <- data_frame(id = c(1, 1, 2, 2), A = c("a", "b", "b", "c"))
df
Source: local data frame [4 x 2]

  id A
1  1 a
2  1 b
3  2 b
4  2 c
Run Code Online (Sandbox Code Playgroud)

应该成为

newdf
Source: local data frame [4 x 2]

  id vector
1  1 "a b"
2  2 "b c"
Run Code Online (Sandbox Code Playgroud)

我的第一个倾向是使用paste()内部,summarise但这不起作用.

df %>% group_by(id) %>% summarise(paste(A))
Error: expecting a single value
Run Code Online (Sandbox Code Playgroud)

Hadley和Romain谈到了GitHub问题中的类似问题,但我不太清楚这是如何直接应用的.似乎应该有一个非常简单的解决方案,特别是因为 …

r dplyr

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

并行python迭代

我想基于a中的值创建一个类的实例pandas.DataFrame.我已经失败了.

import itertools
import multiprocessing as mp
import pandas as pd

class Toy:
    id_iter = itertools.count(1)

    def __init__(self, row):
        self.id = self.id_iter.next()
        self.type = row['type']

if __name__ == "__main__":

    table = pd.DataFrame({
        'type': ['a', 'b', 'c'],
        'number': [5000, 4000, 30000]
        })

    for index, row in table.iterrows():
        [Toy(row) for _ in range(row['number'])]
Run Code Online (Sandbox Code Playgroud)

多处理尝试

我已经能够通过添加以下内容来并行化这种(某种程度):

pool = mp.Pool(processes=mp.cpu_count())
m = mp.Manager()
q = m.Queue()

for index, row in table.iterrows():
    pool.apply_async([Toy(row) for _ in range(row['number'])])
Run Code Online (Sandbox Code Playgroud)

如果数字row['number']显着长于长度,这似乎会更快table.但在我的实际情况中,table …

python pandas python-multiprocessing

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

R:用向量中的项替换NA

我试图用我的数据中的一些缺失值替换来自类似组的平均值.

我的数据如下:

   X   Y
1  x   y
2  x   y
3  NA  y
4  x   y
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

  X   Y
1  x   y
2  x   y
3  y   y
4  x   y
Run Code Online (Sandbox Code Playgroud)

我写了这个,它有效

for(i in 1:nrow(data.frame){
   if( is.na(data.frame$X[i]) == TRUE){
       data.frame$X[i] <- data.frame$Y[i]
   }
  }
Run Code Online (Sandbox Code Playgroud)

但是我的data.frame几乎有五十万行,而for/if语句非常慢.我想要的是类似的东西

is.na(data.frame$X) <- data.frame$Y
Run Code Online (Sandbox Code Playgroud)

但这会导致不匹配的大小错误.似乎应该有一个命令来执行此操作,但我无法在SO或R帮助列表中找到它.有任何想法吗?

replace r missing-data imputation

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

MacVim中的Inconsolata Italic

我试图在MacVim中使用Inconsolata作为我的字体,但我似乎找不到斜体版本.我正在使用曝光的配色方案,它应该用于斜体注释,并且它适用于字体书中具有斜体或斜体版本的字体.

有没有办法以某种方式"制作"斜体版本?是否有一些我无法找到的文件?

fonts macvim

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

dplyr交叉表缺少值

我想在R中使用交叉表dplyr.我有充分的理由不仅使用base table()命令.

table(mtcars$cyl, mtcars$gear)
     3  4  5
  4  1  8  2
  6  2  4  1
  8 12  0  2

library(dplyr)
library(tidyr)
mtcars %>% 
  group_by(cyl, gear) %>%
  tally() %>%
  spread(gear, n, fill = 0)
Source: local data frame [3 x 4]

  cyl  3 4 5
1   4  1 8 2
2   6  2 4 1
3   8 12 0 2
Run Code Online (Sandbox Code Playgroud)

这一切都很好.但是当group_by()变量中缺少值时,它似乎就会崩溃.

mtcars %>%
  mutate(
    cyl = ifelse(cyl > 6, NA, cyl),
    gear = ifelse(gear > 4, …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr

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

将新项添加到ggplot2图例

我在一个情节中打印Case-Shiller指数:

structure(list(Date = structure(c(10957, 11048, 11139, 11231,  11323, 11413, 11504, 11596, 11688, 11778, 11869, 11961, 12053,     12143, 12234, 12326, 12418, 12509, 12600, 12692, 12784, 12874,     12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604, 13695,     13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426, 14518,     14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248, 15340,     15431, 15522, 15614, 15706, 10957, 11048, 11139, 11231, 11323, 
11413, 11504, 11596, 11688, 11778, 11869, 11961, 12053, 12143,     12234, 12326, 12418, 12509, 12600, 12692, 12784, 12874, 12965,     13057, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

7
推荐指数
2
解决办法
4325
查看次数

将“develop”设置为 GitHub 上的默认分支会产生什么后果?

我们正在采用该git-flow方法,并开始在我们公司使用 GitHub 来组织我们的工作并帮助协作。

但我们的行业有相当长的开发周期(正式发布之间有很多年),所以我们可能develop一次会在分支上呆上好几个月。然而,只有当您推送到 时master,才会触发一些不错的 GitHub 功能:

  • 从提交消息中关闭问题
  • 项目里程碑
  • 用户贡献图(打孔卡等)

所以我们不能使用 GitHub 自动跟踪进度,直到几个月后,项目就基本完成了。我相信如果我创建develop默认分支,这个问题就会消失。

但还会出现其他问题吗?就像,我仍然想master成为头版。我担心来到该项目的人只会看到最新的开发版本,可能没有错误检查等。

git github git-flow

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

扩展观星者

长期以来,我一直习惯于apsrtable快速创建模型比较表,但我发现它有些不美观和笨重,因此我的论文表是带有\Sexpr表达式的手工编码表。我很高兴找到stargazer,但对我使用的某些模型不受支持感到失望。

随着apsrtable您可以通过更新很容易扩展的模型apsrtableSummaryModelInfo方法(如在此提问/回答)。

我一直在寻找(但没有找到)类似的方法来将观星者扩展到以下模型:

  1. lme
  2. mlogit
  3. spdep

任何人都有这方面的经验/知道如何做到这一点?

r sweave knitr stargazer

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

将`mclapply`结果放回data.frame

我有一个非常大的 data.frame,我想应用一个相当复杂的函数,计算一个新列.我想要并行完成.这类似于r listserve上发布的问题,但第一个答案是错误的,第二个答案是无益的.

由于parallel包装的原因,我已经弄明白了,除了如何将输出重新放回数据框.这是一个显示我所得到的MWE:

library(parallel)

# Example Data
data <- data.frame(a = rnorm(200), b = rnorm(200),  
                   group = sample(letters, 200, replace = TRUE))

# Break into list
datagroup <- split(data, factor(data$group))

# execute on each element in parallel
options(mc.cores = detectCores())
output <- mclapply(datagroup, function(x) x$a*x$b)
Run Code Online (Sandbox Code Playgroud)

结果output是一个数字向量列表.我需要将它们添加到我可以添加的列中data.我一直在寻找do.call(cbind, ...),但我有两个名称相同的列表,而不是我加入的单个列表.melt(output)给我一个向量,但它的行与...的顺序不同data.

parallel-processing r lapply

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

ggplot2中的交错轴标签

我想错开我的x轴标签ggplot2.令人惊讶的是,我尝试过的东西(感谢@Hadley和一致的语法!).

c <- ggplot(mtcars, aes(factor(cyl)))
c <- c + geom_bar()
c + theme(axis.text.x = element_text(vjust = c(0, 0.1, 0.2)))
Run Code Online (Sandbox Code Playgroud)

太多的空白!

但似乎结果是,专用于边际的垂直空间量变得不必要地大.有关将其恢复到规模的任何提示吗?

r ggplot2

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