提问人:user22892694 提问时间:11/10/2023 最后编辑:marc_suser22892694 更新时间:11/10/2023 访问量:45
在 R data.table 中填充列
Fill column in R data.table
问:
我需要根据另一个列的名称填充新data.table中的列。
在一张表中是列名 a、b、c,第二个是名称 a_1、a_2、b_2、b_1......我需要从第一个表中的值填充第二个表中的所有列,并将相同的数据放入列名中包含 a 或 b 或(所有相同部分)的所有列中。
答:
2赞
r2evans
11/10/2023
#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")))
评论