【发布时间】:2021-07-09 12:29:58
【问题描述】:
我无法在此示例中进行链接。有人可以解释我错过了什么吗?
library(data.table)
dt <- data.table(a=c(rep("komm", 5), rep("by", 5)), paste0("nr.",1:10))
dt[a=="komm", v3:=sub("nr.", "", V2)]
dt[, v4:=sub("\\D*(\\d)", "\\1", V2)]
# doesn't work
dt[a=="by"][
, v5:=sub("nr.", "no.", V2)][
, v6:=sub("\\D*(\\d)", "\\1", V2)]
我期待得到这个输出
a V2 v3 v4 v5 v6
1: komm nr.1 1 1 <NA> <NA>
2: komm nr.2 2 2 <NA> <NA>
3: komm nr.3 3 3 <NA> <NA>
4: komm nr.4 4 4 <NA> <NA>
5: komm nr.5 5 5 <NA> <NA>
6: by nr.6 <NA> 6 no.6 6
7: by nr.7 <NA> 7 no.7 7
8: by nr.8 <NA> 8 no.8 8
9: by nr.9 <NA> 9 no.9 9
10: by nr.10 <NA> 10 no.10 10
【问题讨论】:
-
为什么你有
a=="komm",而v5却变成了a=="by"? -
我期待那个子集,即。
a=="by"与第二次运行将创建v5和v6加起来dt -
查看
?":="中的注意部分@ -
或者应该只是
?:=
标签: r data.table chaining