R中Factor类型选取子集

简介:

Factor是R中的一种数据类型,个人理解就是高级编程语言(C/C++,Python,PHP等)中的枚举

选取Factor数组中的子集不像character,numeric那样直观,在这里记录选取方法,可能不是最简洁的,如果有,还请高手指点。

主要思路:将factor转成character,然后按照character的方式选取子集

看个例子:

fv <- rep(c('a','b'),5)
fv <- as.factor(fv)

输出如下数据

 [1] a b a b a b a b a b
Levels: a b

现在,需要将fv的所有枚举取到,也就是'a'和'b'

names(summary(fv))

输出如下

[1] "a" "b"

 通过下面的代码可以分别取到’a‘或’b‘的子集

labels <- names(summary(fv))
fv[fv == labels[1]]  # 选取a的子集
fv[fv == labels[2]]  # 选取b的子集

输出如下

> fv[fv == labels[1]]  # 选取a的子集
[1] a a a a a
Levels: a b
> fv[fv == labels[2]]  # 选取b的子集
[1] b b b b b
Levels: a b

 

到这里,提供一种更为方便的思路:将factor转化成numeric后,可以按照numeric的方式选取子集。

s <- as.factor(rep(c('a','b'),5))
as.numeric(s)

得到的数据如下:

[1] 1 2 1 2 1 2 1 2 1 2

第一种方法比较笨拙,建议使用第二种方法。


本文转自bourneli博客园博客,原文链接:http://www.cnblogs.com/bourneli/archive/2013/02/10/2909752.html,如需转载请自行联系原作者

相关文章
|
4月前
|
机器学习/深度学习 计算机视觉 Python
`GridSearchCV` 是一种穷举搜索方法,它会对指定的参数网格中的每一个参数组合进行交叉验证,并返回最优的参数组合。
`GridSearchCV` 是一种穷举搜索方法,它会对指定的参数网格中的每一个参数组合进行交叉验证,并返回最优的参数组合。
|
6月前
|
机器学习/深度学习 算法 数据挖掘
SAS用K-Means 聚类最优k值的选取和分析
SAS用K-Means 聚类最优k值的选取和分析
|
数据挖掘
kmeans聚类质心个数选取的10种方式
kmeans聚类质心个数选取的10种方式
144 0
|
Python
将列表按照指定的规则排序并添加平均值
将列表按照指定的规则排序并添加平均值
68 1
L2-005 集合相似度 (25 分)(set+容斥)
L2-005 集合相似度 (25 分)(set+容斥)
54 0
L2-005 集合相似度 (25 分)(set+容斥)
算法训练Day27|39. 组合总和● 40.组合总和II● 131.分割回文串
算法训练Day27|39. 组合总和● 40.组合总和II● 131.分割回文串
|
C++
计算一个数组的子集
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
57 0
|
算法
ENVI_IDL:使用反距离权重法选取最近n个点插值(底层实现)并输出为Geotiff格式(效果等价于Arcgis中反距离权重插值)
ENVI_IDL:使用反距离权重法选取最近n个点插值(底层实现)并输出为Geotiff格式(效果等价于Arcgis中反距离权重插值)
313 0
|
索引 Python
python 对一组list数据,进行区间划分,按照大小排序并返回索引值
最近在对海洋数据进行处理时,对数据需要进行一些排序,数据匹配等操作; 现对我所希望实现的一些函数进行总结:
python 对一组list数据,进行区间划分,按照大小排序并返回索引值
如何找出 sklearn SelectBest 选出几个重要的特征名称(column name)
如何找出 sklearn SelectBest 选出几个重要的特征名称(column name)