读取列号而不是该列中的值

时间:2018-03-28 10:56:29

标签: r dataframe data.table

今天我遇到了一些奇怪的问题。我有一个25列的数据框(让我们说这个列叫做比特币)。我有一个循环,在循环内部我想从另一列中读取值:

for(i in 1:5)
{
  a <- a + (Bitcoin[1,5] - Bitcoin[1, 5 + i])
}

假设i = 4。我应该得到比特币[1,9]的值11400,但我总是得到这个列的数量 - &gt; 9.当我写两个公式时:

Bitcoin[1,9]
Bitcoin[1,5+i]

值不同,第一个是11400,第二个是9.为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

来自?data.table

. with=FALSE is often useful in data.table to select columns dynamically. Note that x[, cols, with=FALSE] is equivalent to x[, .SD, .SDcols=cols]

示例:

aaa <- mtcars
setDT(aaa)
i=6
#eval step by step and see the outcome:
aaa[1,3+i]
aaa[1,3+i,with=FALSE]
aaa[, .SD, .SDcols=3+i]
aaa[1,9]