小编R.S*_*.S.的帖子

R:使用空方括号轻松分配?X [] < -

在查看最近在SO上发布的答案时,我注意到了一个不熟悉的任务说明.而不是通常的形式 myVar<- myValue,它使用了myVar[]<- myValue.就个人而言,我从未见过这样的作业,但它有一个非常有用的效果 - 它将指定的数据myValue重新塑造为myVar的形状.

我想在我的代码中使用它.然而,文档"<-"似乎是沉默的.

这是一个完善的功能,可以依靠它在所有情况下工作吗?

另外,我的猜测是它可能是函数调用堆栈的副作用,即调用<-[按顺序,但我无法弄清楚如何.有人可以对此有所了解吗?

这是一个例子 -

# A dataframe
df1<- data.frame(a=1:4, b=11:14)

# simple assignment assigns to class of RHS
df1<- c(21:24,31:34)
df1 
#[1] 21 22 23 24 31 32 33 34
class(df1)
#[1] "integer"

#assignment with [] casts to class of LHS 
df1<- data.frame(a=1:4, b=11:14)
df1[]<- c(21:24,31:34)
df1

#    a  b
# 1 21 31
# 2 22 32
# 3 23 33
# 4 …
Run Code Online (Sandbox Code Playgroud)

syntax casting r variable-assignment reshape

13
推荐指数
1
解决办法
649
查看次数

Pandas 基于 groupby 多列的滚动平均值

我有一个长格式数据框,两列中有重复值,另一列中有数据。我想找到每个组的 SMA。我的问题是:rolling()简单地忽略了数据按两列分组的事实。

这是一些虚拟数据和代码。

import numpy as np
import pandas as pd

dtix=pd.Series(pd.date_range(start='1/1/2019', periods=4) )
df=pd.DataFrame({'ix1':np.repeat([0,1],4), 'ix2':pd.concat([dtix,dtix]), 'data':np.arange(0,8) })
df
Run Code Online (Sandbox Code Playgroud)
ix1 ix2 数据
0 0 2019-01-01 0
1 0 2019-01-02 1
2 0 2019-01-03 2
3 0 2019-01-04 3
0 1 2019-01-01 4
1 1 2019-01-02 5
2 1 2019-01-03 6
3 1 2019-01-04 7

现在,当我对这些数据执行分组滚动平均值时,我得到如下输出:

import numpy as np
import pandas as pd

dtix=pd.Series(pd.date_range(start='1/1/2019', periods=4) )
df=pd.DataFrame({'ix1':np.repeat([0,1],4), 'ix2':pd.concat([dtix,dtix]), 'data':np.arange(0,8) })
df
Run Code Online (Sandbox Code Playgroud)
        数据
ix1 ix2
0 2019-01-01 南
    2019-01-02 …

python moving-average pandas

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