0.面向对象的操作逻辑&seq_along

没接触过面向对象的语言,运用R的时候还会保留一些过去的操作逻辑,比如构造循环啊什么的,这些东西R已经为你准备好了。

《O'reilly-R》练习4.1:第n个三角形数表示为n*(n+1)/2。创建一个包含前20个三角形数的序列。R有一个内置常数letters,它包含小写的英文字母。使用前20个英文字母来给你刚刚创建的序列元素命名。选择命名为元音的三角形数。

1 n<-seq_len(20)
2 tri_num<-n*(n+1)/2
3 names(tri_nums)<-letters[seq_along(n)]
4 (tri_num[c("a","e","i","o")]

seq_along()要注意一下

官方给的解释:take the length from the length of this argument.

the length of this argument 的意思是什么?是创造一个和输入的值长度一样的序列吗?

不是

这里的长度指的是有点像matrix的length,这个变量中元素的数量。

n是一个20个元素的序列,所以这里创造了一个从1开始长度为20的序列

如果直接输入20的话,只会有一个元素被命名因为20就是的元素数量为1。

猜你喜欢

转载自www.cnblogs.com/clclcl/p/9859037.html