data.table 语法设置 colnames 和值基于其他 table 通过 tstrsplit 中的值
data.table syntax setting colnames and values based on values in other table via tstrsplit
在解决 之后,我还是 data.table 的新手,我需要帮助解决类似的问题,但无法解决:
我想创建一个新的 dt,它的 colnames DT_1
被 [+-] 拆分为 colnames
DT_1= data.table("t+e+s+t" = c(8),"t+e+s-t" = c(8))
t+e+s+t t+e+s-t
1: 8 8
并获取 DT_2
的同名作为行条目
DT_2 = data.table("+++-" = c("a","b"), "++-+" =c("e","f"))
+++- ++-+
1: a e
2: b f
3: c g
4: d h
所以最后的 table 看起来像
t e s t
1: + + + -
2: + + - +
因为稍后我需要 table DT_1 和 DT_2 的条目,所以我想要一个新的 data.table。我试过了:
DT_final = data.table(str_split_fixed(colnames(DT_1), "[+-]")= c(tstrsplit(colnames(DT_2), "")))
这可能无法在一行中解决。
感谢您的帮助。
你可以试试:
result <- as.data.table(tstrsplit(names(DT_2), ""))
names(result) <- unlist(strsplit(names(DT_1)[1], "[+-]"))
> result
t e s t
1: + + + -
2: + + - +
在解决
我想创建一个新的 dt,它的 colnames DT_1
被 [+-] 拆分为 colnames
DT_1= data.table("t+e+s+t" = c(8),"t+e+s-t" = c(8))
t+e+s+t t+e+s-t
1: 8 8
并获取 DT_2
的同名作为行条目
DT_2 = data.table("+++-" = c("a","b"), "++-+" =c("e","f"))
+++- ++-+
1: a e
2: b f
3: c g
4: d h
所以最后的 table 看起来像
t e s t
1: + + + -
2: + + - +
因为稍后我需要 table DT_1 和 DT_2 的条目,所以我想要一个新的 data.table。我试过了:
DT_final = data.table(str_split_fixed(colnames(DT_1), "[+-]")= c(tstrsplit(colnames(DT_2), "")))
这可能无法在一行中解决。 感谢您的帮助。
你可以试试:
result <- as.data.table(tstrsplit(names(DT_2), ""))
names(result) <- unlist(strsplit(names(DT_1)[1], "[+-]"))
> result
t e s t
1: + + + -
2: + + - +