小编jon*_*nsh的帖子

如何向 data.table 添加一列并返回多列而不修改基础数据?

我有以下data.table内容R

dt <- data.table(gender = c("Male", "Female"), Prop = c(0.49, 0.51))
#   gender Prop
# 1:   Male  0.49
# 2: Female  0.51
Run Code Online (Sandbox Code Playgroud)

我想计算一Freq = Prop * 1000列,然后仅返回genderFreq列。如何在一行代码中完成此操作,而无需显式引用该gender列且无需修改dt

我能做到的最好的办法是:

onsdist$gender[, c(.SD, Freq = Prop * 1000)][, .SD, .SDcols = - "Prop"]
#    gender Freq1 Freq2
# 1:   Male   490   490
# 2: Female   510   510
Run Code Online (Sandbox Code Playgroud)

但我最终得到了重复的Freq列。

(我不想引用的原因gender是因为它跨data.tables改变了。我不想修改的原因dt …

r dataframe data.table

3
推荐指数
1
解决办法
95
查看次数

标签 统计

data.table ×1

dataframe ×1

r ×1