使用R markdown书写时,您可以声明以下内容:
# my tabset {.tabset}
## first one
## second one
# another section
Run Code Online (Sandbox Code Playgroud)
得到类似以下的内容:(是否有可能在jupyter中得到这种行为?)
假设我有以下数据表:
dt=data.table(type=c('big','medium','small','small'
,'medium','small','small'
,'big','medium','small','small')
,category=letters[1:11])
type category
1: big a
2: medium b
3: small c
4: small d
5: medium e
6: small f
7: small g
8: big h
9: medium i
10: small j
11: small k
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我有一个类别层次结构:所有行的'big'类型相同,直到看到后面的'big'类型.并且每种类型的行为都是相同的.
我想要的重塑必须给我以下内容:
dt=data.table(type=c('big','medium','small','small'
,'medium','small','small'
,'big','medium','small','small')
,category=letters[1:11])
big medium small
1: a b c
2: a b d
3: a e f
4: a e g
5: h i j
6: h i k
Run Code Online (Sandbox Code Playgroud)
如您所见,每个类别仅在找到相同类别的寄存器时发生更改,订单对于设置此类别非常重要.
你觉得有没有办法在不使用for的情况下做到这一点?
我有以下数据表:
dt=data.table(a=seq(1,3),b=letters[seq(1,3)],
c=seq(4,6),d=letters[seq(4,6)])
dt
a b c d
1: 1 a 4 d
2: 2 b 5 e
3: 3 c 6 f
Run Code Online (Sandbox Code Playgroud)
我将一些列的名称存储在一个向量中,将其他列的名称存储在另一个向量中:
names1=names(dt)[1:2]
names2=names(dt)[3:4]
Run Code Online (Sandbox Code Playgroud)
当某些条件适用时,我需要将names2中存储的列的值分配给names1的列.就像是
dt[c(2,3),names1:=names2]
dt
a b c d
1: 1 a 4 d
2: 5 e 5 e
3: 6 f 6 f
Run Code Online (Sandbox Code Playgroud)
我尝试了以下语法但没有成功:
dt[c(2,3),names1:=dt[c(2,3),names2,with=F]]
Run Code Online (Sandbox Code Playgroud)
但它仍然试图分配names2中包含的字符串向量的值
我有一个像这样的data.table:
dt=data.table(freq=c(4,3,2,1),elements=list(c('a','b','c'),
c('a','d'),
c('b','d'),
c('b','d','c','e')))
freq elements
1: 4 a,b,c
2: 3 a,d
3: 2 b,d
4: 1 b,d,c,e
Run Code Online (Sandbox Code Playgroud)
我需要每行中的元素只是该行中元素之间的集合差异以及该行之前集合的所有元素的联合.这样我会得到类似的东西:
freq elements
1: 4 a,b,c
2: 3 d
3: 2 NA
4: 1 e
Run Code Online (Sandbox Code Playgroud)
我可以用一个用于组合所有元素直到i-1并且仅获得设置差异但我真的想知道如何以矢量化方式进行,如果可能的话.
感谢你们!
假设我有这个数据.表:
dt=data.table(ID=letters[seq(3,8)],category=rep(c('a','b'),each=3),value=seq(1,6))
Run Code Online (Sandbox Code Playgroud)
我想得到每个寄存器的相对百分比相对于一个类别中所有值的总和.除此之外,我想出于调试原因打印该类别.它会是这样的:
dt[,print(.BY[["category"]]),
list(relative=value/sum(dt[category==.BY[["category"]],value],
by='ID')
Run Code Online (Sandbox Code Playgroud)
谢谢