我的问题与引用分配和复制分配有关data.table.我想知道是否可以通过引用删除行,类似于
DT[ , someCol := NULL]
Run Code Online (Sandbox Code Playgroud)
我想知道
DT[someRow := NULL, ]
Run Code Online (Sandbox Code Playgroud)
我想有一个很好的理由说明为什么这个功能不存在,所以也许你可以指出一个很好的替代通常的复制方法,如下所示.特别是,从我的例子(data.table)开始,
DT = data.table(x = rep(c("a", "b", "c"), each = 3), y = c(1, 3, 6), v = 1:9)
# x y v
# [1,] a 1 1
# [2,] a 3 2
# [3,] a 6 3
# [4,] b 1 4
# [5,] b 3 5
# [6,] b 6 6
# [7,] c 1 7
# [8,] c 3 8
# [9,] c 6 …Run Code Online (Sandbox Code Playgroud) 我查看了StackOverflow,但我找不到特定于我的问题的解决方案,这涉及将行附加到R数据帧.
我正在初始化一个空的2列数据帧,如下所示.
df = data.frame(x = numeric(), y = character())
Run Code Online (Sandbox Code Playgroud)
然后,我的目标是迭代一个值列表,并在每次迭代中,将值附加到列表的末尾.我从以下代码开始.
for (i in 1:10) {
df$x = rbind(df$x, i)
df$y = rbind(df$y, toString(i))
}
Run Code Online (Sandbox Code Playgroud)
我也试图功能c,append以及merge没有成功.如果您有任何建议,请告诉我.
如果我有一个数据框
set.seed(12345)
df=data.frame(a=rnorm(5),b=rnorm(5))
Run Code Online (Sandbox Code Playgroud)
我可以通过例如添加一行
df[6,] =c(5,6)
如果我现在在data.table中做等效的
library(data.table)
dt=data.table(df)
dt[6,]=c(5,6)
Run Code Online (Sandbox Code Playgroud)
它失败并出现错误.将行插入data.table的正确方法是什么?
我有一个data.table,其字段为{id,menuitem,amount}.
这是交易数据 - 因此,ID是唯一的,但menuitem重复.现在,我想删除所有条目menuitem == 'coffee'.
另外,想要删除所有行amount <= 0;
在data.table中执行此操作的正确方法是什么?
我可以使用data$menuitem!='coffee'然后将int索引到data [] - 但这不一定有效并且不利用data.table.
任何指向正确方向的人都会受到赞赏.
这个问题是关于理解,我要投资我的学习精力用于数据R.之间扯皮具体dplyr,dtplyr和data.table。我dplyr主要使用数据,但是当数据太大而无法使用时data.tabe,这种情况很少发生。因此,现在dtplyrv1.0已成为的接口data.table,从表面上看,我似乎再也不需要担心data.table再次使用该接口。
那么,目前尚不能使用的最有用的功能或方面data.table是什么dtplyr,而将来可能永远无法使用dtplyr?
从表面上看,dplyr借助的好处,data.table它听起来像dtplyr会超越dplyr。会不会有任何理由来使用dplyr,一旦dtplyr已经完全成熟?
注意:我不是在问dplyrvs data.table(就像在data.table vs dplyr中:一个人可以做得很好而另一个不能做得不好或做得不好吗?),但是鉴于在一个特定问题上一个人比另一个人更受青睐,为什么呢?牛逼dtplyr是使用工具。
我尝试使用来自不同列(Key2 - KeyX)的值扩展 R 中的数据集,然后使用公式中的列号计算一些值。
我要扩展的数据集的一部分示例
Year Key2 Key3 Key4 Key5 ...
2001 150 105 140 140
2002 130 70 55 80
2003 590 375 355 385
...
Run Code Online (Sandbox Code Playgroud)
首选结果。
value = 用列号和 p 计算的值
year i col p value
2001 1 1 0.7481282 4.0150810
2001 2 1 0.8449366 2.0735090
2001 ... 1 0.1906882 0.9534411
2001 150 1 0.8030162 3.7406410
2001 1 2 0.4147019 4.2246831
2001 2 …Run Code Online (Sandbox Code Playgroud)