全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1802 9
2016-04-10
一個vector,如何根據各個元素的符號進行分組,例如從第一個到第8個元素都大於0,則第一個到第八個分到同一組,然後如果第九個和第十個都小於0,那麼9 10 則分成一組,以此類推。
二维码

扫码加我 拉你入群

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

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

全部回复
2016-4-10 21:11:54
> x=runif(10,-1,1)
> x
[1] -0.826434863 -0.682567422  0.663395870  0.341920905  0.975422718
[6] -0.004661798 -0.113293662  0.669064062 -0.227924711 -0.787234876
> group=ifelse(x>0,"1","0")
> group
[1] "0" "0" "1" "1" "1" "0" "0" "1" "0" "0"
二维码

扫码加我 拉你入群

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

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

2016-4-10 21:15:56
用 cut(vec, breaks=c(...))
二维码

扫码加我 拉你入群

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

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

2016-4-10 21:18:38
yyt0415 发表于 2016-4-10 21:11
> x=runif(10,-1,1)
> x
[1] -0.826434863 -0.682567422  0.663395870  0.341920905  0.975422718
非常感謝你

我少說了一個條件,就是例如,你的分組,前兩個0是一組,後面三個1是一組,可是接下來我要對不同的組求組內均值和組內range,這個要怎麼弄?

再次感謝
二维码

扫码加我 拉你入群

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

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

2016-4-10 21:24:54
> x=runif(10,-1,1)
> x
[1] -0.8645572 -0.6380527 -0.2739525  0.2951239  0.7972818  0.4300227
[7]  0.7396441 -0.1908709  0.4193186 -0.4487091
> group=ifelse(x>0,"1","0")
> group
[1] "0" "0" "0" "1" "1" "1" "1" "0" "1" "0"
> split(x,group)
$`0`
[1] -0.8645572 -0.6380527 -0.2739525 -0.1908709 -0.4487091

$`1`
[1] 0.2951239 0.7972818 0.4300227 0.7396441 0.4193186

> lapply(split(x,group),mean)
$`0`
[1] -0.4832285

$`1`
[1] 0.5362782
二维码

扫码加我 拉你入群

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

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

2016-4-10 21:25:23
luo000tuo 发表于 2016-4-10 21:18
非常感謝你

我少說了一個條件,就是例如,你的分組,前兩個0是一組,後面三個1是一組,可是接下來我要 ...
> x=runif(10,-1,1)
> x
[1] -0.8645572 -0.6380527 -0.2739525  0.2951239  0.7972818  0.4300227
[7]  0.7396441 -0.1908709  0.4193186 -0.4487091
> group=ifelse(x>0,"1","0")
> group
[1] "0" "0" "0" "1" "1" "1" "1" "0" "1" "0"
> split(x,group)
$`0`
[1] -0.8645572 -0.6380527 -0.2739525 -0.1908709 -0.4487091

$`1`
[1] 0.2951239 0.7972818 0.4300227 0.7396441 0.4193186

> lapply(split(x,group),mean)
$`0`
[1] -0.4832285

$`1`
[1] 0.5362782
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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