【发布时间】:2013-02-11 22:44:29
【问题描述】:
我正在使用 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 的全向量方式,或者一种更智能的子集化方式并分配给“拆分”元变量。
【问题讨论】: