【发布时间】:2017-03-27 18:58:08
【问题描述】:
这个问题是paste two data.table columns 的后续问题,因此我将使用相同的示例:
以data.table开头:
dt <- data.table(L=1:5,A=letters[7:11],B=letters[12:16])
L A B
1: 1 g l
2: 2 h m
3: 3 i n
4: 4 j o
5: 5 k p
我想创建一个新列,它是两列的组合,特别是 dt$A 和 dt$B。
dt[, new := paste0(A, B)]
dt
L A B new
1: 1 g l gl
2: 2 h m hm
3: 3 i n in
4: 4 j o jo
5: 5 k p kp
由于我使用 new 作为一种 ID 列,并且希望具有一些人类可读性,我想使用一个字符来分隔 dt$A 和 dt$B 的内容,所以:
dt[, new := paste0(A, B, collapse = ".")]
但这意外地改变了行为:
dt
L A B new
1: 1 g l gl.hm.in.jo.kp
2: 2 h m gl.hm.in.jo.kp
3: 3 i n gl.hm.in.jo.kp
4: 4 j o gl.hm.in.jo.kp
5: 5 k p gl.hm.in.jo.kp
【问题讨论】:
-
你为什么用
collapse而不是sep?
标签: r data.table