【发布时间】:2018-04-19 12:26:30
【问题描述】:
我认为我应该编辑该示例,因为它具有误导性。给您带来的不便深表歉意:(
以下是我遇到的警告示例:
dsf <- data.table(v1=c('a','a','b','b','b','c'),v2=c(3,5,8))
> dsf
v1 v2
1: a 3
2: a 5
3: b 8
4: b 3
5: b 5
6: c 8
我想添加一个新列来生成
v1 v2 v3
1: a 3 5
2: a 5 7
3: NA NA 4
4: b 8 6
5: b 3 9
6: b 5 4
7: NA NA 4
8: c 8 7
9: NA NA 9
但我收到如下警告消息:
在
[.data.table(dsf, ,:=(v3, c(1:4))) 中: 提供 4 项分配给列“v3”的 3 项(1 项未使用)
数据表为:
v1 v2 v3
1: a 3 5
2: a 5 7
3: b 8 6
4: b 3 9
5: b 5 4
6: c 8 7
在原来的情况下 - 我正在处理 - 我有这样的事情:
dsf <- dsf[, v3:=f(list(v2)) , by=list(v1)]
函数 f 创建一个额外的值。
【问题讨论】:
-
@Mike H。我已经编辑了示例,谢谢。
-
@CPak 我已经编辑了示例,也谢谢你。
-
你怎么知道你想在哪里添加
NAs?例如,为什么在第 3 和第 7 行有一个NA?如果你想做dsf$v3 <- c(5,7,4,6,9,4,4,7,9)之类的事情,他们不应该都在最后吗? -
@Mike H. 在 dsf
标签: r data.table