小编Foo*_*Bar的帖子

R:为组和非组的组合创建第一个差异

我有这个data.table有一些特定于组的数据,以及一些一般数据:

         group year      flow      agg
   1: 51557094 2010   3.46000 592649.6
   2: 51557133 1999 111.60000 522706.2
   3: 51557133 2000  29.36000 555279.7
   4: 51557133 2003  96.38000 592649.6
   5: 51557193 2004  65.22000 550622.4
Run Code Online (Sandbox Code Playgroud)

flow这里是group- year特异性的,aggyear具体的.我想计算第一个差异:对于flow基于group,和第一个差异year,并且agg没有分组,只是第一个差分year.

我更喜欢不包括的方法dplyr.

预期产出

         group year     dFlow      dAgg
   1: 51557094 2010        NA        NA
   2: 51557133 1999        NA        NA
   3: 51557133 2000    -82.24   32573.5
   4: 51557133 2003        NA        NA …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

R:通过引用从data.table中删除列,而不使用名称

几乎重复.我想从数据表中删除列,但我想有效地完成它.我有一个我想保留的列名列表.联系问题的所有答案都意味着做类似的事情

data.table.new <- data.table.old[, my.list]
Run Code Online (Sandbox Code Playgroud)

在某些关键点上会给我一个新对象,而旧对象仍在内存中.然而,我data.table.old是巨大的,因此我更喜欢通过引用来做到这一点,如此处所示

set(data.table.old, j = 'a', value = NULL)
Run Code Online (Sandbox Code Playgroud)

但是,由于我有列的白名单,而不是黑名单,我需要遍历所有列名,检查它们是否在my.list,然后应用set().有没有更清洁/其他方式这样做?

r data.table

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

吉特:请告诉我你是谁

我在Windows的Git Gui中打开了我的存储库,然后按了commit。我有

无法获取您的身份:

请告诉我您是谁致命:无法自动检测电子邮件地址(获取'foo @ int123123。(无)')

我在其中匿名了电子邮件地址。

但是,我已经使用git控制台(对于Windows)全局设置了电子邮件地址。为了进行检查,我将自己定向到存储库文件夹并输入

git config --list
Run Code Online (Sandbox Code Playgroud)

和输出是

user.name=myName
user.mail=myMail
Run Code Online (Sandbox Code Playgroud)

再次匿名,myMail严格说来不是foo@int123123。我是什么做的?

windows git

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

Matplotlib:检查是否未定义显示

有时我通过 ssh 运行我的脚本。这个答案告诉我要设置

import matplotlib
#matplotlib.use('Agg') # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

当我undefined SCREEN通过 ssh 运行脚本时出现错误。但是,有了该序言,当我在本地计算机上运行脚本时,我无法以交互方式查看图形。

检查屏幕是否定义的条件是什么?我想做

if SCREEN == None:
  matplotlib.use('Agg')
Run Code Online (Sandbox Code Playgroud)

正确的代码如何,我该如何检查?

python ssh matplotlib

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

Numpy:"添加"索引和冒号

我有

>>> foo = np.zeros((3,3,3))
>>> foo[1,2,1] = 1
>>> idx = 1,2
Run Code Online (Sandbox Code Playgroud)

我想得到相当于

>>> foo[1,2,:]
array([ 0.,  1.,  0.])
Run Code Online (Sandbox Code Playgroud)

使用idx(迭代idx).我试过的两种方法都没有解决:

>>> foo[idx, :]
array([[[ 0.,  0.,  0.],
        [ 0.,  0.,  0.],
        [ 0.,  1.,  0.]],

       [[ 0.,  0.,  0.],
        [ 0.,  0.,  0.],
        [ 0.,  0.,  0.]]])
>>> foo[((idx,)+(slice(None),))]
array([[[ 0.,  0.,  0.],
        [ 0.,  0.,  0.],
        [ 0.,  1.,  0.]],

       [[ 0.,  0.,  0.],
        [ 0.,  0.,  0.],
        [ 0.,  0.,  0.]]])
Run Code Online (Sandbox Code Playgroud)

python numpy

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

R sink:随时间输出

我目前正在使用sink将输出保存到某个文本文件:

sink('out.txt', append=TRUE, split=TRUE)
Run Code Online (Sandbox Code Playgroud)

我想在每个输出/消息中添加日期时间.sink似乎不支持这一点.实现这一目标的最简单方法是什么?

也就是说,我的预期输出是

[1] "some message"
Run Code Online (Sandbox Code Playgroud)

但我希望它是

2014-12-02 13:12:12 [1] "some message"
Run Code Online (Sandbox Code Playgroud)

或者沿着这些方向的东西.

我更喜欢一个解决方案,我不需要调整脚本的每一个输出.我宁愿只在开始时在config/include文件中设置它,以保持代码清洁和可管理.

r sink

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

从词典中选择值以创建新的DataFrame列

我有一本字典

type_dict = {3: 'foo', 4: 'bar',5: 'foobar', 6: 'foobarbar'}
Run Code Online (Sandbox Code Playgroud)

和一个包含以下列的DataFrame:

>>> df.type
0     3
1     4
2     5
3     6
4     3
5     4
6     5
7     6
8     3
Run Code Online (Sandbox Code Playgroud)

我想创建一个包含相应type_dict值的新列,但以下是我唯一可以提出并且无法正常工作的内容:

>>> type_dict[df.type]
TypeError: 'Series' objects are mutable, thus they cannot be hashed

>>> type_dict[df.type.values]
TypeError: unhashable type: 'numpy.ndarray'
Run Code Online (Sandbox Code Playgroud)

我真的需要apply并遍历每一行,还是有更有效的替代方案?

python dictionary dataframe pandas

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

Demean R data.table:列列表

我想按组贬低整个data.table对象(或只是它的许多列的列表).

到目前为止,这是我的方法:

setkey(myDt, groupid)
for (col in colnames(wagesOfFired)){
   myDt[, paste(col, 'demeaned', sep='.') := col - mean(col), with=FALSE]
}
Run Code Online (Sandbox Code Playgroud)

这使

Error in col - mean(col) : non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)

这是一些示例数据.在这个简单的例子中,只有两列,但我通常有很多列,所以我想迭代列表

            y  groupid    x
 1:   3.46000 51557094   97
 2: 111.60000 51557133   25
 3:  29.36000 51557133   23
 4:  96.38000 51557133    9
 5:  65.22000 51557193   32
 6:  66.05891 51557328   10
 7:   9.74000 51557328  180
 8:  61.59000 51557328   18
 9:   9.99000 51557328   18
10:  89.68000 51557420  447
11: 129.24436 51557429   15 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

绘制 4d 数据

我有 4 个维度的点(让我们称它们为 v,w,y,z),我想将其可视化。

我的计划是让两个正方形 ( v x w, y x z) 彼此相邻,然后将每个点绘制两次。

鉴于两点 ( [1, 1, 1, 3], [2, 2, 2, 2]) 我设想这样的事情:

第1337章

给定一小组点,我可以使用不同的颜色来显示左侧的哪些点对应于右侧。有了大量的点,那将是徒劳的。但也许热图是最好的可视化方法?

或者是否有一些替代的既定方法可以在 python/matplotlib 中可视化更高维度的数据?

以下是一些示例数据:

>>> resultsArray[:,:4]
array([[ 0.        ,  0.        ,  0.        ,  0.        ],
       [ 0.00495236,  0.03919034,  0.00495287,  0.03919042],
       [ 0.00240293,  0.02667374,  0.00220419,  0.02693434],
       [ 0.0011231 ,  0.0191784 ,  0.00104353,  0.01928256],
       [ 0.00547274,  0.04187615,  0.00657255,  0.04043363],
       [ 0.00291993,  0.0286196 ,  0.00292006,  0.02861962],
       [ 0.00128136,  0.01975574,  0.00121107,  0.01984781],
       [ 0.00591335,  0.04531384,  0.00873814, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

np.isnan()== False,但是np.isnan()不是False

据我所知,==检查价值是否相等,并is检查价值背后的结构的身份(例如===在其他一些语言中).

鉴于此,我不明白以下内容:

np.isnan(30) == False
Out[19]: 
True
np.isnan(30) is False
Out[20]: 
False
Run Code Online (Sandbox Code Playgroud)

其他身份检查似乎并非如此:

(5 == 4) == False
Out[22]: 
True
(5 == 4) is False
Out[23]: 
True
Run Code Online (Sandbox Code Playgroud)

看起来好像是作为值np.isnan()返回False,而不是作为标识返回.为什么会这样?

python boolean numpy python-3.5

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

标签 统计

python ×5

r ×4

data.table ×3

matplotlib ×2

numpy ×2

boolean ×1

dataframe ×1

dictionary ×1

git ×1

pandas ×1

python-3.5 ×1

sink ×1

ssh ×1

windows ×1