这个人骑车骑出了一个向量,然后。。。
测试开头

测试结尾
今天是生信星球陪你的第590天
大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~
就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~
这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

花花写于2020-4-9
起因
话说有那么一天,曾老板闲来无事出门骑车,还骑了个来回,发现自己骑出了个向量,遂很开心的丢进了各个群当练习题,用R语言生成那一串数:9,8,10。。。1,17。
这。。。当然是写答案。就好比下了个毒,我就赶紧找解药。
简单版
x = rep(0,17)
x[seq(1,17,2)]=9: 17
x[seq(2,17,2)]=8: 1
x
#[1] 9 8 10 7 11 6 12 5 13 4 14
#[12] 3 15 2 16 1 17
函数版
上面的方法仅适用于17。如果要不局限于着一个数字,那就要写函数。
需要区分奇偶数,先分别拿个例子试试
#奇数
n=17
x = integer()
x[seq(1,n,2)]=((n+1)/2): n
x[seq(2,n,2)]=((n+1)/2 -1): 1
x
#[1] 9 8 10 7 11 6 12 5 13 4 14
#[12] 3 15 2 16 1 17
#偶数
n=18
y=integer()
(n/2+1): n
(n/2): 1
y[seq(1,n,2)]=(n/2+1): n
y[seq(2,n,2)]=(n/2): 1
y
#[1] 10 9 11 8 12 7 13 6 14 5 15
#[12] 4 16 3 17 2 18 1
测试好了就木有问题。写成函数。
dud = function(n){
y = integer()
if(n %% 2==0){
y[seq(1,n,2)]=(n/2+1): n
y[seq(2,n,2)]=(n/2): 1
}else{
y[seq(1,n,2)]=((n+1)/2): n
y[seq(2,n,2)]=((n+1)/2 -1): 1
}
return(y)
}
dud(17)
#[1] 9 8 10 7 11 6 12 5 13 4 14
#[12] 3 15 2 16 1 17
dud(18)
#[1] 10 9 11 8 12 7 13 6 14 5 15
#[12] 4 16 3 17 2 18 1
嗯。骑的真快,我一开始还以为是跑步跑的。突然想起,前几天我们公司的小郭同学说他给曾老板组装了个自行车来着。夸夸小郭,上得厅堂下得厨房,装的了服务器撸的了代码,组的了自行车,还修的了灯泡。PS:他是我们全国巡讲团队的助教啊,多了就不说了,怕被打。
插个小广告!
全国巡讲全球听(生信线上直播课)
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!