今天我遇到了一些奇怪的问题。我有一个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.为什么会发生这种情况?
答案 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]