相关疑难解决方法(0)

如何制作一个很好的R可重复的例子

在与同事讨论性能,教学,发送错误报告或在邮件列表上搜索指导时,以及在Stack Overflow上,通常会询问可重复的示例并始终提供帮助.

您有什么建议创建优秀示例的提示?如何以文本格式粘贴中的数据结构?您还应该包含哪些其他信息?

在另外还有其他招数来使用dput(),dump()structure()?你什么时候应该包括library()require()声明?其中保留字应避免一个,此外c,df,data等?

怎样才能成为一位伟大的重复的例子?

r r-faq

2474
推荐指数
23
解决办法
28万
查看次数

准确理解data.table何时是对另一个data.table的引用(与副本)

我在理解传递的引用属性方面遇到了一些麻烦data.table.有些操作似乎"打破"了参考,我想准确理解发生了什么.

data.table从另一个创建a 时data.table(通过<-,然后更新新表:=,原始表也会被更改.这是预期的,按照:

?data.table::copystackoverflow:传递引用操作在数据表包中

这是一个例子:

library(data.table)

DT <- data.table(a=c(1,2), b=c(11,12))
print(DT)
#      a  b
# [1,] 1 11
# [2,] 2 12

newDT <- DT        # reference, not copy
newDT[1, a := 100] # modify new DT

print(DT)          # DT is modified too.
#        a  b
# [1,] 100 11
# [2,]   2 12
Run Code Online (Sandbox Code Playgroud)

但是,如果我:=<-赋值和:=上面的行之间插入非基础修改,DT现在不再修改:

DT = data.table(a=c(1,2), b=c(11,12))
newDT …
Run Code Online (Sandbox Code Playgroud)

copy r reference assignment-operator data.table

181
推荐指数
2
解决办法
3万
查看次数

在data.table的组的第一行中分配值

我只想在的组的第一行中分配这些值data.table

例如(简体):my data.tableis DTwith the following content

x v  
1 1  
2 2  
2 3  
3 4  
3 5  
3 6 
Run Code Online (Sandbox Code Playgroud)

keyDTx
我想讲一组的每一行。

这工作正常:DT[, .SD[1], by=x]

x v  
1 1  
2 2  
3 4 
Run Code Online (Sandbox Code Playgroud)

现在,我想只分配的这些值v0

但这都不起作用:

DT[, .SD[1], by=x]$v <- 0  
DT[, .SD[1], by=x]$v := 0  
DT[, .SD[1], by=x, v:=0]
Run Code Online (Sandbox Code Playgroud)

我从程序包和提供的所有链接中搜索了R-help,但我无法使其正常运行。
我发现那里的注释说这行不通,但是没有示例/解决方案可以帮助我。

任何建议我都会很高兴。

(我非常喜欢这个程序包,我不想回到data.frame ...在这里工作)

编辑:

我想要这样的结果:

x v  
1 0  
2 0  
2 3 …
Run Code Online (Sandbox Code Playgroud)

grouping r variable-assignment data.table

6
推荐指数
2
解决办法
1495
查看次数