我有一个data.table有序的数据标签,我想添加一个列,告诉我有多少记录,直到我得到一个重置倒计时的"特殊"记录.
例如:
DT = data.table(idx = c(1,3,3,4,6,7,7,8,9),
name = c("a", "a", "a", "b", "a", "a", "b", "a", "b"))
setkey(DT, idx)
#manually add the answer
DT[, countdown := c(3,2,1,0,2,1,0,1,0)]
Run Code Online (Sandbox Code Playgroud)
给
> DT
idx name countdown
1: 1 a 3
2: 3 a 2
3: 3 a 1
4: 4 b 0
5: 6 a 2
6: 7 a 1
7: 7 b 0
8: 8 a 1
9: 9 b 0
Run Code Online (Sandbox Code Playgroud)
查看倒计时列如何告诉我有多少行,直到一行称为"b".问题是如何在代码中创建该列.
请注意,键的间距不均匀,可能包含重复项(因此在解决问题时不是很有用).一般来说,非b名称可能不同,但如果解决方案需要,我可以添加一个只有True/False的虚拟列.
我正在使用graphNEL来自gRbase和Rgraphviz绘图的对象,并且想要在绘图时以不同(指定)颜色为图形的节点着色.例如,我怎么能绘制此图与a和b蓝色和c和d红色的吗?
library(Rgraphviz)
library(gRbase)
mygraph = dag(~a:c + b:c + b:d)
plot(mygraph)
Run Code Online (Sandbox Code Playgroud)

如果我有一个需要反引号的列名,因为它包含一个逗号,则setkey抛出一个错误,说不要使用逗号.错误指示我,?setkey但我没有看到那些提到这个的例子.我只能找到解决方法是重命名列,setkey然后重命名.
示例代码:
library(data.table)
> DT = data.table(`X, in $` = rnorm(10))
> DT
X, in $
1: -1.28475886
2: 0.97789059
3: -0.05023914
4: -0.38133978
5: -0.24949607
6: 0.99213156
7: -0.29310512
8: 0.02840372
9: 0.25294231
10: -0.88955013
> setkey(DT, `X, in $`)
Error in setkeyv(x, cols, verbose = verbose) :
Don't use comma inside quotes. Please see the examples in help('setkey')
Run Code Online (Sandbox Code Playgroud)
编辑:显示更可能的示例
对我来说,你遇到这个问题的主要原因是在使用reshape2 dcast字符列值(来自外部源,例如数据库)并使它们成为列名后.
只要您不需要键的"连接"行为,并且只想排序,那么您可以通过复制表或使用data.frame相反来解决此问题.例如:
library(ggplot2)
library(reshape2)
DT = data.table(Office = …Run Code Online (Sandbox Code Playgroud) 我在RStudio的Rpres文件中使用R markdown.
我知道这是使用reveal.js,它可以做垂直幻灯片.
我需要输入什么降价来创建垂直幻灯片?我所有的努力,到目前为止(--,---,type:subsection)仍然导致一组简单的横向滑动的,只有左,右导航
当你在python中导入模块时,模块代码是“run”。有时,在模块中包含分支逻辑很有用,例如检查包版本或平台或其他内容。有没有办法在到达文件末尾之前退出整个模块执行,相当于函数中的提前返回?
如果模块作为脚本运行,您可以 exit() ,但这会主动引发异常并终止整个过程。我只想说,现在你已经完成了,不要再运行下面的代码了。
基本上我可以改变这个
if not <condition>:
MY_CONSTANT = 3.14
class blah():
...
def foo(x):
...
# rest of module....
Run Code Online (Sandbox Code Playgroud)
进入
if <condition>:
return from module
MY_CONSTANT = 3.14
class blah():
...
def foo(x):
...
# rest of module....
Run Code Online (Sandbox Code Playgroud)
主要是这样我就不必编写大量看起来奇怪的额外缩进级别的代码。
我想绘制相关矩阵的Hinton图,我可以得到99%的路径,但是当我设置我正在绘制的点的大小时,该大小以像素为单位,因此不会缩放为图表大小发生变化.例如,如何将点的大小"校准"为轴大小的一小部分?我希望它是这样的,当我加倍图形的大小时,点数加倍.我可能使用了错误的geom.
到目前为止我有这个代码:
library(ggplot2)
library(data.table)
library(reshape2)
DT = data.table(A = rnorm(10), B = rnorm(10), X = rnorm(10), Y = rnorm(10))
C = cor(DT)
ggplot(melt(C), aes(x=Var1, y=Var2, size=abs(value), color=as.factor(sign(value)))) +
geom_point(shape = 15) +
scale_size_area(max_size = 40) +
theme_bw()
Run Code Online (Sandbox Code Playgroud)
通过更改max_sizefor scale_size_area我可以让对角线填充该区域,但如果我更改图表的大小,则点不会缩放.有没有办法强制点在轴坐标中采用特定尺寸?理想情况下,当然,我想使用矩形,以便我可以有任何形状,它仍然有效,但我不知道一个geom会这样做?

什么是进行笛卡尔连接并使用前滚特征的最佳方法,但是将滚动特征应用于连接表中的每个替代系列,而不是整个系列.
最佳解释一个例子:
library(data.table)
A = data.table(x = c(1,2,3,4,5), y = letters[1:5])
B = data.table(x = c(1,2,3,1,4), f = c("Alice","Alice","Alice", "Bob","Bob"), z = 101:105)
setkey(B,x)
C = B[A, roll = TRUE, allow.cartesian=TRUE, rollends = FALSE]
A
B
C[f == "Alice"]
C[f == "Bob"]
C
Run Code Online (Sandbox Code Playgroud)
所以我们有两个起始表:
> A
x y
1: 1 a
2: 2 b
3: 3 c
4: 4 d
5: 5 e
> B
x f z
1: 1 Alice 101
2: 1 Bob 104
3: 2 Alice 102 …Run Code Online (Sandbox Code Playgroud) 在使用rmarkdown它时,通常需要以编程方式生成文本片段,特别是列出正在使用的项目.例如;
The species of iris examined were `r cat(as.character(unique(iris$Species)), sep = ", ")`.
Run Code Online (Sandbox Code Playgroud)
哪个会产生
检查的虹膜种类是setosa,versicolor,virginica.
要正确阅读它应该是
检查的虹膜种类是setosa,versicolor和virginica.
有一个简单的方法吗?
我有一个(每日)pandas timeSeries,我需要过滤到每月,使用特定工作日的第 n 个出现作为选择日期的规则
到目前为止,我认为最好的方法是首先列出我感兴趣的所有日期的列表或系列,然后询问这些日期的时间序列?
但这仍然留下了一个问题,即我如何列出两个日期之间发生的所有“本月的第二个星期二”?
我有一个表重复键重复多次,一个表为每个键选择一行,使用另一列的最大值.
这个例子展示了我目前的解决方案:
N = 10
k = 2
DT = data.table(X = rep(1:N, each = k), Y = rnorm(k*N))
X Y
1: 1 -1.37925206
2: 1 -0.53837461
3: 2 0.26516340
4: 2 -0.04643483
5: 3 0.40331424
6: 3 0.28667275
7: 4 -0.30342327
8: 4 -2.13143267
9: 5 2.11178673
10: 5 -0.98047230
11: 6 -0.27230783
12: 6 -0.79540934
13: 7 1.54264549
14: 7 0.40079650
15: 8 -0.98474297
16: 8 0.73179201
17: 9 -0.34590491
18: 9 -0.55897393
19: 10 0.97523187
20: 10 …Run Code Online (Sandbox Code Playgroud) r ×8
data.table ×4
python ×2
dataframe ×1
formatting ×1
ggplot2 ×1
graphviz ×1
join ×1
markdown ×1
pandas ×1
r-markdown ×1
reshape2 ×1
reveal.js ×1
rstudio ×1
string ×1