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列。我该怎么办?
答案 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);
以查看此