小编Bjo*_*fan的帖子

分配pandas数据帧的最佳方法

嘿,我是Pandas的新手,我刚刚遇到过df.query().

df.query()当您可以使用括号表示法直接过滤Dataframe时,为什么人们会使用?官方的熊猫教程似乎也更喜欢后一种方法.

带括号表示法:

df[df['age'] <= 21]
Run Code Online (Sandbox Code Playgroud)

用pandas查询方法:

df.query('age <= 21')
Run Code Online (Sandbox Code Playgroud)

除了已经提到的一些风格或灵活性差异之外,还有一个规范首选 - 即在大型数据帧上执行操作?

python dataframe pandas data-science

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

如何在RStudio中启用vim模式

有没有人能够在RStudio中启用或使用vim模式?我正在使用新版本的RStudio,(3.3.2(2016-10-31)).唯一的说明来自三四年前,GUI的屏幕截图与我使用的截图不同.(tools-> global options-> code-> editing).没有复选框可以启用它.我非常希望它仍然存在

ide rstudio

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

R中的apply()具有用户定义的函数

我有一个数据框,其中有投票和政党标签

dat <- data.frame( v1=c(25, 0, 70), 
                   v2=c(75, 100, 20), 
                   v3=c(0, 0, 10), 
                   l1=c("pA", ".", "pB"), 
                   l2=c("pB", "pC", "pC"), 
                   l3=c(".", ".", "pD") )
Run Code Online (Sandbox Code Playgroud)

这样每行就是一个分析单位.只有投票方才需要考虑,此功能可以提取正面投票或相应的标签

getpos <- function(vector, vorl="v"){ # change to "l" to report labels
    vot <- vector[grep( "v", colnames(vector) )]; 
    lab <- vector[grep( "l", colnames(vector) )];
    if (vorl=="v") {vot[vot>0]} else {lab[vot>0]};
}
getpos(dat[1,])           # votes for obs 1
getpos(dat[1,], vorl="l") # labels for obs 1
Run Code Online (Sandbox Code Playgroud)

我希望在数据帧dat的每一行中运行函数getpos,以便生成具有不同长度的投票/标签向量的列表.应用该函数不会返回我期望的内容:

apply(X=dat, MARGIN=1, FUN=getpos, vorl="l")
Run Code Online (Sandbox Code Playgroud)

谁能发现问题?相关,这可以更有效地实现吗?

r apply

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

并行化R脚本

我的R脚本的问题是它花了太多时间,我考虑的主要解决方案是并行化它.我不知道从哪里开始.

我的代码看起来像这样:

n<- nrow (aa) 
output <- matrix (0, n, n)

akl<- function (dii){
        ddi<- as.matrix (dii)
        m<- rowMeans(ddi)
        M<- mean(ddi)
        r<- sweep (ddi, 1, m)
        b<- sweep (r, 2, m)
        return (b + M)  
        }
for (i in 1:n)
{
A<- akl(dist(aa[i,]))

dVarX <- sqrt(mean (A * A))

for (j in i:n)
{
    B<- akl(dist(aa[j,]))
        V <- sqrt (dVarX * (sqrt(mean(B * B))))

        output[i,j] <- (sqrt(mean(A * B))) / V        
}
}   
Run Code Online (Sandbox Code Playgroud)

我想在不同的cpu上并行化.我怎样才能做到这一点?我看到了SNOW包,它适合我的目的吗?感谢您的建议,Gab

parallel-processing r

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