data.table和data.frame中的索引列之间的区别

时间:2016-07-08 18:38:27

标签: r dataframe data.table

DF = data.frame(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)

当我写DF[2,3]时,它显示2,因为那是第2行,第3列。但是对于DT[2,3],它显示3?我想知道这个值3是如何得出的,如果我想要第2行第3列。我该怎么办?

1 个答案:

答案 0 :(得分:1)

这是j中混淆的常见原因。 [.data.table中的第二个DT[2,v] 参数是“在data.table的框架内进行评估;即,它将列名称看作是变量”,所以3你意外得到的是评估你传递的价值3的结果。

您可以按名称访问第3列

DT[2,3, with=FALSE]

或索引,如果指定为= FALSE

?data.table

在命令行键入 var nmsFakeHelper = A.Fake<NMCHelperFunctions>(); A.CallTo(() => nmsFakeHelper.GetAvailableLicenseTypes(fakeHttpSession, foundLicense, true)).Returns(foundLicensTypes); 以查看此

的帮助页面