【发布时间】:2018-09-07 00:45:22
【问题描述】:
今天我遇到了一些奇怪的问题。我有一个 25 列的数据框(假设该列称为比特币)。我有一个循环,在该循环内我想从其他列中读取值:
for(i in 1:5)
{
a <- a + (Bitcoin[1,5] - Bitcoin[1, 5 + i])
}
假设 i=4。我应该得到 Bitcoin[1,9] 的值,即 11400,但我总是得到这一列的数字 -> 9。当我写两个公式时:
Bitcoin[1,9]
Bitcoin[1,5+i]
值不同,第一个是 11400,第二个是 9。为什么会这样?
【问题讨论】:
-
class(Bitcoin)是 data.table 正确的 ;-) -
是的,没错。
-
好的,我已经把它改成了data.frame,现在它是正确的。但是为什么会这样呢?
-
使用:
Bitcoin[1, 5 + i,with=FALSE] -
data.table将尝试像函数一样应用5+i,而不是将其用作列的位置。如果您使用data.table,这是一个有用的链接:cran.r-project.org/web/packages/data.table/vignettes/… 对于这个特定的问题检查部分 (g)。
标签: r dataframe data.table