在 R data.table 中填充列

问题描述 投票:0回答:1

我需要根据另一个表中的列名称填充新 data.table 中的列。

在一个表中,列名称 a、b、c 在第二个表中是名称 a_1、a_2、b_2、b_1 ...我需要用第一个表中的值填充第二个表中的所有列,并将相同的数据放入包含 a 或 的所有列列名称中的 b 或(全部相同部分)。

r join data.table
1个回答
1
投票

你是这个意思吗?

table_1[, setNames(.SD, names(table_2)), .SDcols=sub("_.*", "", names(table_2))]
#     a_52  b_25   c_1   d_k   F_z  a_23  b_28  c_21  d_25  F_25
#    <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
# 1:     1     1     1     1    20     1     1     1     1    20
# 2:     2     2     2     2    21     2     2     2     2    21
# 3:     3     3     3     3    22     3     3     3     3    22
# 4:     4     4     4     4    23     4     4     4     4    23

数据

table_1 <- data.table::as.data.table(structure(list(a = 1:4, b = 1:4, c = 1:4, d = 1:4, F = 20:23), row.names = c(NA, -4L), class = c("data.table", "data.frame")))
table_2 <- data.table::as.data.table(structure(list(a_52 = logical(0), b_25 = logical(0), c_1 = logical(0), d_k = logical(0), F_z = logical(0), a_23 = logical(0), b_28 = logical(0), c_21 = logical(0), d_25 = logical(0), F_25 = logical(0)), row.names = integer(0), class = c("data.table", "data.frame")))
© www.soinside.com 2019 - 2024. All rights reserved.