我正在观看Greg Reda关于Pandas的视频[1],看看Pandas可以做些什么来与data.table进行比较.我很惊讶地发现在data.table中连接表是多么困难.如果您观看视频,特别是@ 49:00到@ 52:00分钟,您会看到Pandas允许您根据不同的列名称连接表格,并且您可以为左右表格选择不同的后缀.我知道setkey用于优化目的[2],并了解如何使用相同的列名连接表[3].我尝试了data.table的合并,但是by=使用不同的列名设置关键字参数有很多困难.所以这是我的问题.
在data.table中,是否可以基于不同的列名连接表?如果是这样,怎么样?如果没有,为什么不呢?此外,更有用的是,这个功能不是很有用吗?我觉得这个问题没有提前出现令人惊讶.如果之前已经讨论过,请原谅我(并请指出他们).
顺便说一句,Greg正在谈论的数据可以在他的github上找到[4].
考虑我有以下data.table
d <- data.table(group=rep(letters[1:5],c(30,20,20,20,10)), x=1:100, y=101:201)
Run Code Online (Sandbox Code Playgroud)
表示分配为5个组的数据
d[,.N,by=group]
Run Code Online (Sandbox Code Playgroud)
现在,我如何选择一个小样本,比方说10行(或10%的数据),它基本上具有基于一列或多列的类似组分布.因此,对于上表,我可以接收的假设子集类似于:
group x y
a 8 108
b 32 132
e 93 193
b 46 146
d 88 188
c 53 153
c 68 168
a 19 119
d 74 174
a 24 124
Run Code Online (Sandbox Code Playgroud)
我最好如何在data.table中执行此操作?有一个关于SO一个问题在这里讨论这件事,但我宁愿没有手动计算分配的百分比.
我正在尝试使用https://cran.r-project.org/web/packages/littler/vignettes/littler-examples.html#install2r:_With_Cmdline_Parsing来安装一些软件包,期间出现错误dependency 'graph' is not available。看来这个包可以从 Bioconductor 项目(https://www.bioconductor.org/packages/release/bioc/html/graph.html)获得,但我不知道如何使用install2.r.
那么,具体如何使用安装bioconductor包install2.r?