【问题标题】:Replace a value in a datatable by giving the column index通过给出列索引替换数据表中的值
【发布时间】:2017-03-27 19:37:12
【问题描述】:

DT成为这个数据表:

DT <- data.table(A=1:2, B=3:4)

我们可以像这样替换 B 列第 2 行的单元格:

DT[2, `:=`(B=99)]

但我想通过给出列的 index 而不是它的名称来替换。怎么样?

【问题讨论】:

  • @MrFlick 是的,完全正确! (这是预期的答案)。谢谢!
  • 与我们对数据框的处理方式相同吗? DT[2, 2] &lt;- 99
  • 通常在编程中使用列索引是个坏主意,因为您并不真正知道那里有什么,而且如果您修改错误的列也不会出错。
  • 另一个(尽管有大卫的评论):set(DT, 2, 2, 99).
  • @DavidArenburg 在我的情况下,这是唯一的方法。

标签: r data.table


【解决方案1】:

您可以将数字索引作为第一个参数传递给:=。例如

DT[2, `:=`(2, 99)]

【讨论】:

    【解决方案2】:

    您可以使用@MrFlick 评论的内容,也可以直接使用: DT[2,2] &lt;- 99

    我不知道您对使用该符号的偏好是什么。

    【讨论】:

      猜你喜欢
      • 2017-04-22
      • 2016-09-06
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多