CWYAlpha

Just another WordPress.com site

Thought this was cool: 笨办法学R编程(2)

leave a comment »


本例将介绍R语言中的while循环和if条件。最终用它来解决Project Euler的第二个问题。除了练习之外你还需要了解一些斐波纳契数列的知识。废话不多说了,打开R控制台,跟着输入下面的代码,自行琢磨吧。

# 预备练习,while循环和if判断
x <- 1:10
print(x)
print(x[10])
print(x[-10])
 
i <- 1
while (i <= 10) {
print(x[i])
i <- i + 1
}
i <- 1
while (TRUE) {
print(x[i])
i <- i + 1
if (i > 10) break
}
# 用循环和条件来完成前篇文章中的问题
# 可以体会到R语言向量化计算的特点。
x <- 1
sumx <- 0
while (x < 1000) {
if (x %% 3 == 0 | x %% 5 == 0) {
sumx <- sumx + x
}
x <- x + 1
}
print(sumx)
 
# Project Euler 2
# 找到4000000以下的斐波纳契数列
# 将其中的偶数进行求和
i <- 2
x <- 1:2
while (x[i] < 4e6) {
x[i+1] <- x[i-1] + x[i]
i <- i + 1
}
x <- x[-i]
sum(x[x %% 2 == 0])

得到的结果为4613732。使用while和if语句时要注意,其判断条件都要放在圆括号中,之后的代码段如果超过一行则要用大括号注明。

from 数据科学与R语言: http://xccds1977.blogspot.com/2012/08/r2.html

Written by cwyalpha

八月 19, 2012 在 2:18 上午

发表在 Uncategorized

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: