gpt4 book ai didi

r - 如何在 r 中的 data.table 中评估(或创建)动态列

转载 作者:行者123 更新时间:2023-12-04 09:18:56 25 4
gpt4 key购买 nike

我想创建一个新的 data.table 或者只是向 data.table 添加一些列。指定多个新列很容易,但是如果我想要第三列根据我正在创建的列之一计算值会发生什么。我认为 plyr 包可以做这样的事情。我们可以在 data.table 中执行这样的迭代(顺序)列创建吗?

我想做如下

dt <- data.table(shop = 1:10, income = 10:19*70)
dt[ , list(hope = income * 1.05, hopemore = income * 1.20, hopemorerealistic = hopemore - 100)]

或许
dt[ , `:=`(hope = income*1.05, hopemore = income*1.20, hopemorerealistic = hopemore-100)]

最佳答案

j 中使用花括号和分号是可能的
有多种方法可以解决,这里有两个例子:

# If you simply want to output: 

dt[ ,
{hope=income*1.05;
hopemore=income*1.20;
list(hope=hope, hopemore=hopemore, hopemorerealistic=hopemore-100)}
]


# if you want to save the values

dt[ , c("hope", "hopemore", "hopemorerealistic") :=
{hope=income*1.05;
hopemore=income*1.20;
list(hope, hopemore, hopemore-100)}
]
dt
# shop income hope hopemore hopemorerealistic
# 1: 1 700 735.0 840 740
# 2: 2 770 808.5 924 824
# 3: 3 840 882.0 1008 908
# 4: 4 910 955.5 1092 992
# 5: 5 980 1029.0 1176 1076
# 6: 6 1050 1102.5 1260 1160
# 7: 7 1120 1176.0 1344 1244
# 8: 8 1190 1249.5 1428 1328
# 9: 9 1260 1323.0 1512 1412
# 10: 10 1330 1396.5 1596 1496

关于r - 如何在 r 中的 data.table 中评估(或创建)动态列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712858/

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