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

R 读取列号而不是该列中的值,r,dataframe,data.table,R,Dataframe,Data.table,今天我遇到了一些奇怪的问题。我有一个25列的数据框(假设这列被称为比特币)。我有一个循环,在该循环中,我想从其他列读取值: for(i in 1:5) { a <- a + (Bitcoin[1,5] - Bitcoin[1, 5 + i]) } 数值不同,第一个是11400,第二个是9。为什么会这样 来自?数据表 . with=FALSE is often useful in data.table to select columns dynamically. Note that x

今天我遇到了一些奇怪的问题。我有一个25列的数据框(假设这列被称为比特币)。我有一个循环,在该循环中,我想从其他列读取值:

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

数值不同,第一个是11400,第二个是9。为什么会这样

来自
?数据表

. 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]

aaa来自
数据表

. 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]

aaa
class(比特币)
is data.table right;-)是的,没错。好的,我把它改成了data.frame,现在它是正确的。但为什么会发生这种情况?请使用:
Bitcoin[1,5+i,with=FALSE]
数据。table
将尝试像函数一样应用
5+i
,而不是将其用作列的位置。如果您使用
data.table
:对于此特定问题,请检查部分(g)。
class(比特币)
是data.table right;-)是的,没错。好的,我把它改成了data.frame,现在它是正确的。但为什么会发生这种情况?请使用:
Bitcoin[1,5+i,with=FALSE]
数据。table
将尝试像函数一样应用
5+i
,而不是将其用作列的位置。如果您使用
数据,这是一个有用的链接。表
:用于此特定问题检查部分(g)。