gpt4 book ai didi

r - 如何使用向量作为列引用粘贴到 data.table 中?

转载 作者:行者123 更新时间:2023-12-05 08:29:43 26 4
gpt4 key购买 nike

我正在创建一个函数,我需要将文本与用户传递的随机列中的值粘贴在一起。假设我有以下数据

dt <- data.table(id = letters[1:10], amount = 1:10)
dt

我想做的是给定一个向量,它是数据中的列名,用它来粘贴

dt[,id:=paste0('id_',id)]
id amount
1: id_a 1
2: id_b 2
3: id_c 3
4: id_d 4
5: id_e 5
6: id_f 6
7: id_g 7
8: id_h 8
9: id_i 9
10: id_j 10

所以如果 var 是我尝试的向量

var <- 'id'
dt[,(var):=paste0('id_',eval(var))]

但它返回

       id amount
1: id_id 1
2: id_id 2
3: id_id 3
4: id_id 4
5: id_id 5
6: id_id 6
7: id_id 7
8: id_id 8
9: id_id 9
10: id_id 10

如何将其解释为 data.table 中的列名?

最佳答案

我们可以使用get

dt[, (var) := paste0('id_', get(var))]

-输出

> dt
id amount
1: id_a 1
2: id_b 2
3: id_c 3
4: id_d 4
5: id_e 5
6: id_f 6
7: id_g 7
8: id_h 8
9: id_i 9
10: id_j 10

或者标准方式是.SD或者.SDcols

dt[, (var) := paste0('id_', .SD[[var]])]

关于r - 如何使用向量作为列引用粘贴到 data.table 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68598043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com