我已经阅读了关于data.table的DataCamp课程,并且仍然对data.table中的j的行为感到困惑,J,由]。具体来说,我不能让data.table返回长度的正确值当我尝试索引中的列由一个号码(同时使用with=FALSE
):无法返回data.table中列的长度()的正确值
library(data.table) lifetech.dt=data.table(a=c(1,2,3,4,5), b=c(1,2),d=c(5,6,7,8,9)) x=colnames(lifetech.dt) length_counter=NULL
for (a in 1:length(x)){
length_counter=c(length_counter,length(lifetech.dt[,a, with=FALSE])) }
length_counter
#should return a length of 5?, instead returns a length of 1
length(lifetech.dt[,a, with=FALSE])
length(lifetech.dt[,3,with=FALSE])
#perhaps this way? But it returns 9 (the last value in col. d?
lifetech.dt[.N,d]
#want this, but without having to know the colname of column 4 is "d" is advance
length(lifetech.dt[,d])
您的代码格式出错了。请参阅[Markdown帮助 - 代码和预格式化文本](http://stackoverflow.com/editing-help#code)并请[编辑]您的文章。 –
你可以让你的问题可重现吗? – geotheory
data.frame/data.table的'length'是列数,而不是行数。我相信你会混淆这两件事。你可能需要'nrow'来代替。注意像'lifetech.dt [,1,with = FALSE]'这样的子集会返回一个data.table,而'lifetech.dt [,human_specific_miRBase_ID]'返回一个原子向量(因此,你可以运行'length'并获得该列的行数) –