gpt4 book ai didi

r - 在 data.table 中同时计算和重命名列

转载 作者:行者123 更新时间:2023-12-03 07:50:42 25 4
gpt4 key购买 nike

我有一个 data.table,其中“年”列包含出生年份:

library(data.table)

people <- data.table("year" = 1990:1992)

我想将此列重命名为“age”并同时在 data.table 中计算值:

setnames(people, c("year"), c("age" := 2023 - "age"))

setnames(people, c("year"), c("age" := 2023 - "year"))

为什么我的代码不起作用?

最佳答案

关于“为什么不工作?”,您应该检查setnames的用法。当您输入 ?setnames 时,您会看到语法

setnames(x,old,new,skip_absent=FALSE)

参数new描述如下:

Optional. It can be a function or the new column names. If a function,it will be called with old and expected to return the new columnnames. The new column names must be the same length as columnsprovided to old argument.

您可以指定新名称,但不能指定命名列


要使其正常工作,您可以使用如下链接表达式

> people[, age := 2023 - year][, year := NULL][]
age
1: 33
2: 32
3: 31

关于r - 在 data.table 中同时计算和重命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77200127/

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