如何在不保留原始集合的所有数据信息的情况下进行子集化

时间:2016-02-06 23:01:48

标签: r subset

我正在尝试子集数据。

这里是样本数据的链接: https://drive.google.com/file/d/0BwIbultIWxeVOFdRaE81Nm9qc2s/view?usp=sharing

因此,在此数据集中,最后一列的名称为"Type",其中包含两个值:"normal.""back." 并且假设我根据"Type"列进行了子集化:

test.data = read.csv(file = paste0(dd, '/data_example.csv'))
test.subdata1 = subset(test.data, test.data$Type == 'normal.')
test.subdata2 = test.data[test.data$Type == 'normal.',]

在这里,我使用两种最常用的方法进行子集化:

  1. 使用subset()

  2. 直接过滤[]

  3. 据推测,新的子集数据应该只包含Type ``"normal."的数据(这个词后面有一段时间) 事实上,当我查看子集数据表时,只有"normal."个存在。

    然而,事实是,"back."类信息保留在我的子集数据中,如下面的输出所示:

    str(test.subdata1$Type)
    # Factor w/ 2 levels "back.","normal.": 2 2 2 2 2 2 2 2 2 2 ...
    str(test.subdata2$Type)
    # Factor w/ 2 levels "back.","normal.": 2 2 2 2 2 2 2 2 2 2 ...
    

    所以我使用哪种子集化方法无关紧要,原始数据集中的完整信息将保留在我的子集数据集中。

    我的问题是: 如何摆脱原始数据集中的额外信息我不想保留在我的子集数据集中?

    意思是,我怎样才能在子集数据中看到1个因子级别而不是2个因子级别?

1 个答案:

答案 0 :(得分:0)

# Is this what you need?
test.subdata1$Type = as.factor(as.integer(test.subdata1$Type))

# or maybe
test.subdata1$Type = factor(test.subdata1$Type)