全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1587 2
2014-01-23
看关于plotting教程的时候看到这样一段:
>x<-rnorm(100)
>y<-rnorm(100)
>z<-gl(2,50,labels=c("M","F"))
>plot(x[z=="M"],y[z=="M"])

我不明白的是z跟x和y并没有关系啊,而且是作为一个factor存在的,怎么可以做x, y 的subset选取的参数呢?

然后为方便自己理解,我自己简化了一下
>x<-1:20
>y<-21:40
>z<-gl(2,10,labels=c("M","F"))
>x[z=="M"]
[1]  1  2  3  4  5  6  7  8  9 10


最后一行就是得到的数据。那么是不是说,不管z跟x y 有没有关系,只要factor和vector的长度相等,factor就可以按位置顺序做vector的subset的参数呢?

R的编程里,是否还有相似的规则?

请各位赐教!
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-1-24 01:01:09
你的理解没错,用z=="M"得到的一个TRUE和FALSE的vector,然后x[z=="M"]就是把对应于TRUE的那些元素保留下来,对应于FALSE的就扔掉了。

其实长度不一样也是可以的。R会自动把短的那个循环
比如:

> x <- 1:10
> z <- c(TRUE, FALSE)
> z
[1]  TRUE FALSE
> x[z]
[1] 1 3 5 7 9
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-24 22:20:12
qoiqpwqr 发表于 2014-1-24 01:01
你的理解没错,用z=="M"得到的一个TRUE和FALSE的vector,然后x[z=="M"]就是把对应于TRUE的那些元素保留下来 ...
了解了,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群