r语言 矩阵转化为向量中的逻辑型向量怎么用

后使用快捷导航没有帐号?
查看: 16627|回复: 11
R语言里面有求两个向量的交集这样子的函数吗
金牌会员, 积分 2763, 距离下一级还需 237 积分
论坛徽章:11
如题,不想自己写函数去求,效率慢,不知道R里面有没有现成的函数可用,除了求交集,还有求一个向量不包含另一个向量的值,比如向量a为1,2,3,向量b为3,4,5,则a不包含b的值的向量为1,2,交集向量则为3??
金牌会员, 积分 2296, 距离下一级还需 704 积分
论坛徽章:7
intersect(a,b)交集
union(a,b)并集
注册会员, 积分 178, 距离下一级还需 22 积分
论坛徽章:2
is668com 发表于
intersect(a,b)交集
union(a,b)并集
求问是否可以实现三个向量之间的交~
刚刚试过一下提示是这样子的:
& intersect(a,b,c)
错误于intersect(a, b, c) : 参数没有用(c)
求解答,谢谢~~
中级会员, 积分 245, 距离下一级还需 255 积分
论坛徽章:3
目前能用的方法是
& intersect(intersect(a,b),c)
求大神给个机智点的方法%&_&%
金牌会员, 积分 2296, 距离下一级还需 704 积分
论坛徽章:7
chelleccr 发表于
求问是否可以实现三个向量之间的交~
刚刚试过一下提示是这样子的:
& intersect(a,b,c)
哎呀,三个向量的交 先交两个再交另外那个就OK了嘛
金牌会员, 积分 2296, 距离下一级还需 704 积分
论坛徽章:7
qingyu-huang 发表于
目前能用的方法是
& intersect(intersect(a,b),c)
写个循环或怎么样,其实这就很OK了,你还想干嘛。
注册会员, 积分 183, 距离下一级还需 17 积分
论坛徽章:0
目前没有直接求多个集合交或并运算的函数.
如果集合数量比较少,可以用
z=intersect(intersect(a,b),c) 或 z=intersect(a,b) z=intersect(z,c) (两者本质一样)
的迭代形式.
但如果所求集合较多,建议使用循环建构求解.
注册会员, 积分 178, 距离下一级还需 22 积分
论坛徽章:2
is668com 发表于
哎呀,三个向量的交 先交两个再交另外那个就OK了嘛
谢谢 我后来的解决方法就是类似这样
先求a与b的交 然后赋值给某个向量,然后再求这个向量与c的交
金牌会员, 积分 1307, 距离下一级还需 1693 积分
论坛徽章:19
金牌会员, 积分 1307, 距离下一级还需 1693 积分
论坛徽章:19
扫一扫加入本版微信群【图文】R语言入门和使用技巧_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
R语言入门和使用技巧
上传于||暂无简介
大小:2.17MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢3568人阅读
R Language(43)
一、因子的特点或性质
1、因子可视为C或JAVA语言中的枚举,适用于有限状态的表示。
2、因子不可以赋枚举集合外的值,如一个因子包含male,female,则不能再赋male和female以为的值,赋其他值会将该元素设置为空值。
二、因子的建立
1、因子的建立
假定有因子gendor,为一组人的性别:
& gendor&-factor(c('m','f','f','m'),labels=c('male','female'))
则通过上式建立一个性别因子。
[1] female male&& male&& female
Levels: male female
可以看到有两个级别(或水平),分别是male和female。
2、有序因子
若因子需要有序,比如差,一般,好,很好,非常好,则可使用order参数:order=TRUE。
&qulity&-c('good','common','good','better','excellent')
& q&-factor(qulity,levels=c('bad','good','common','better','excellent'),
+ labels=c('bad','good','common','better','excellent'),order=TRUE)
[1] good&&&&& common&&& good&&&&& better&&& excellent
Levels: bad & good & common & better & excellent
[1] better
Levels: bad & good & common & better & excellent
三、因子与向量的转换
1、向量到因子转换
实际上就是构造因子,例如上例:
&qulity&-c('good','common','good','better','excellent')
& q&-factor(qulity,levels=c('bad','good','common','better','excellent'),
+ labels=c('bad','good','common','better','excellent'),order=TRUE)
&Ord.factor w/ 5 levels &bad&&&common&&..: 3 2 3 4 5
2、因子到向量的转换
(1)使用as.vector()函数,例子:
& q&-factor(qulity,levels=c('bad','common','good','better','excellent'),
+ labels=c('bad','common','good','better','excellent'),order=TRUE)
[1] good&&&&& common&&& good&&&&& better&&& excellent
Levels: bad & common & good & better & excellent
&Ord.factor w/ 5 levels &bad&&&common&&..: 3 2 3 4 5
& q2&-as.vector(q)
[1] &good&&&&&& &common&&&& &good&&&&&& &better&&&& &excellent&
&chr [1:5] &good& &common& &good& &better& &excellent&
可以看到已经转换为字符型。
(2)使用as.numeric()函数,因子被转换为数字,例子:
& q2&-as.numeric(q)
[1] 3 2 3 4 5
&num [1:5] 3 2 3 4 5
------------------------------------------------------------------------------------------------------
因子(factor)和有序因子(ordered factor)
&&&&&&&因子用来存储类别变量(categorical variables)和有序变量,这类变量不能用来计算而只能用来分类或者计数。因子表示分类变量,有序因子表示有序变量。
&&&&&&&生成因子数据对象的函数是factor(),语法是factor(data, levels, labels, ...),其中data是数据,levels是因子水平向量,labels是因子的标签向量。
1、创建一个因子。
&&&例1:colour &- c('G', 'G', 'R', 'Y', 'G', 'Y', 'Y', 'R', 'Y')
&&&&&&&&&&&col &- factor(colour)
&&&&&&&&&&&col1 &- factor(colour, levels = c('G', 'R', 'Y'), labels = c('Green', 'Red', 'Yellow'))
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#labels的内容替换colour相应位置对应levels的内容
&&&&&&&&&&&col2 &- factor(colour, levels = c('G', 'R', 'Y'), labels = c('1', '2', '3'))
&&&&&&&&&&&col_vec &- as.vector(col2) #转换成字符向量
&&&&&&&&&&&col_num &- as.numeric(col2) #转换成数字向量
&&&&&&&&&&&col3 &- factor(colour, levels = c('G', 'R'))
2、创建一个有序因子
&&&&例1:score &- c('A', 'B', 'A', 'C', 'B')
&&&&&&&&&&&&score1 &- ordered(score, levels = c('C', 'B', 'A')); score1
3、用cut()函数将一般的数据转换成因子或有序因子。
&&&&例1:exam &- c(98, 97, 52, 88, 85, 75, 97, 92, 77, 74, 70, 63, 97, 71, 98,
&&&&&&&&&&&&&&&&&&&65, 79, 74, 58, 59, 60, 63, 87, 82, 95, 75, 79, 96, 50, 88)
&&&&&&&&&&&&exam1 &- cut(exam, breaks = 3) #切分成3组
&&&&&&&&&&&&exam2 &- cut(exam, breaks = c(0, 59, 69, 79, 89, 100)) #切分成自己设置的组
&&&&&&&&&&&&attr(exam1, 'levels'); attr(exam2, 'levels'); attr(exam2, 'class')
&&&&&&&&&&&&ordered(exam2, labels = c('bad', 'ok', 'average', 'good', 'excellent')) #一个有序因子
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1446977次
积分:16671
积分:16671
排名:第448名
原创:397篇
转载:159篇
评论:106条
(2)(4)(9)(12)(18)(4)(10)(15)(5)(3)(12)(22)(13)(1)(11)(13)(3)(11)(10)(6)(4)(7)(4)(8)(3)(9)(20)(15)(1)(5)(5)(11)(7)(3)(3)(2)(7)(4)(1)(4)(1)(1)(6)(1)(3)(6)(2)(5)(6)(10)(23)(14)(12)(8)(39)(16)(5)(32)(10)(15)(2)(12)(1)(1)(9)(1)(2)(3)(8)

我要回帖

更多关于 r语言逻辑符号 的文章

 

随机推荐