首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用get()在R数据表中找不到数值列

使用get()在R数据表中找不到数值列
EN

Stack Overflow用户
提问于 2020-06-12 00:01:54
回答 1查看 36关注 0票数 1

我有一个包含几个数字列名的数据表,用于即时2020-42020-5。我将其称为Nouvelle_periode = "2020-5"Ancienne_periode = "2020-4",我设法通过使用前面提到的get来处理这些列中的内容。

但是删除一列似乎不起作用:

这是可行的:Test_2 <- Test[,Revision:=get(Nouvelle_periode) - get(Ancienne_periode)]

但这不是:Test_3 <- Test_2 [,get(Ancienne_periode):=NULL] (我得到错误object 2020-4 not found,即使它仍然是

我也不知道为什么。

以下是MWE:

代码语言:javascript
运行
复制
library(data.table)
Nouvelle_periode = "2020-5"
Ancienne_periode = "2020-4"

Test <- data.table(Zone = c("Allemagne", "Allemagne", "Allemagne", 
  "Allemagne", "Espagne", "Espagne", "Espagne", "Espagne", "Etats-Unis", 
  "Etats-Unis", "Etats-Unis", "Etats-Unis", "France", "France", 
  "France", "France", "Italie", "Italie", "Italie", "Italie", "Japon", 
  "Japon", "Japon", "Japon", "Monde", "Monde", "Monde", "Monde", 
  "Royaume-Uni", "Royaume-Uni", "Royaume-Uni", "Royaume-Uni", "Zone euro", 
  "Zone euro", "Zone euro", "Zone euro"), Periode = c("2020", "2020", 
    "2021", "2021", "2020", "2020", "2021", "2021", "2020", "2020", 
    "2021", "2021", "2020", "2020", "2021", "2021", "2020", "2020", 
    "2021", "2021", "2020", "2020", "2021", "2021", "2020", "2020", 
    "2021", "2021", "2020", "2020", "2021", "2021", "2020", "2020", 
    "2021", "2021"), Grandeur = c("IPC", "PIB", "IPC", "PIB", "IPC", 
    "PIB", "IPC", "PIB", "IPC", "PIB", "IPC", "PIB", "IPC", "PIB", 
    "IPC", "PIB", "IPC", "PIB", "IPC", "PIB", "IPC", "PIB", "IPC", 
    "PIB", "IPC", "PIB", "IPC", "PIB", "IPC", "PIB", "IPC", "PIB", 
    "IPC", "PIB", "IPC", "PIB"), `2020-4` = c(0.7, -5, 1.4, 4.5, 
 -0.4, -5.7, 1.3, 5.2, 0.8, -4, 1.8, 3.9, 0.4, -5.4, 1.3, 5.1, 
 -0.2, -7.5, 0.6, 4.5, -0.1, -3.3, 0.2, 2.1, 2.1, -2.1, 2.4, 4.4, 
 1, -5.4, 1.6, 4.7, 0.4, -5.7, 1.3, 5.4), 
 `2020-5` = c(0.6, -6.3, 1.4, 5.2, -0.4, -9.1, 1, 6.7, 0.7, -5.4, 1.8, 4.3, 0.3, -8.2, 
1.2, 6.7, -0.2, -9.9, 0.6, 6.3, -0.4, -5.5, 0.1, 2.4, 2, -4.1, 2.3, 5.1, 1, -7.9, 1.4, 6.1, 0.3, -7.9, 1.1, 6.2))


Test_2 <- Test[,Revision:=get(Nouvelle_periode) - get(Ancienne_periode)]
Test_3 <- Test_2 [,get(Ancienne_periode):=NULL]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-12 00:06:06

不需要get,在:=操作员的lhs上使用c(...)

代码语言:javascript
运行
复制
head( Test_2 [,c(Ancienne_periode) := NULL] )
#         Zone Periode Grandeur 2020-5 Revision
# 1: Allemagne    2020      IPC    0.6     -0.1
# 2: Allemagne    2020      PIB   -6.3     -1.3
# 3: Allemagne    2021      IPC    1.4      0.0
# 4: Allemagne    2021      PIB    5.2      0.7
# 5:   Espagne    2020      IPC   -0.4      0.0
# 6:   Espagne    2020      PIB   -9.1     -3.4
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62328519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档