我正在使用 R tm 包,试图将我的语料库拆分为训练集和测试集,并将其编码为元数据以供选择。最简单的方法是什么(假设我试图将样本分成两半)?
以下是我尝试过的一些事情:
- 我知道当我打字时...
> meta(d) MetaID Y 1 0 1 2 0 1
我看到了 ID,但似乎无法访问它们(为了说前半部分属于一组,而第二部分属于另一组)。 rownames(attributes(d)$DMetaData)
给了我索引,但这看起来很难看,它们是因素。
- 现在,在转换为数据框后,说 d 是我的数据集,我只是说:
half <- floor(dim(d)[1]/2) d$train <- d[1:half,] d$test <- d[(half+1):(half*2),]
但是我怎么能轻松地做类似的事情......
meta(d, tag="split") = ifelse((meta(d,"ID")<=floor(length(d)/2)),"train","test")
...得到如下结果:
> meta(d) MetaID Y split 1 0 1 train 2 0 1 train ... . . ... 100 0 1 test
不幸的是,meta(d,"ID")
不起作用,但meta(d[[1]],"ID") == 1
确实如此,但它是多余的。我正在寻找一种访问元 ID 的全向量方式,或者一种更智能的子集化方式并分配给“拆分”元变量。