l**********8 发帖数: 305 | 1 新手学R
要求求和 y(n)=1+x+x^2+x^3+....x^n , where x=0.3, n=55
my.result <- function(n) {
for(i in 0:n) {
y <- 0.3^i
print(y) }
return(y)
}
my.result(55)
为啥出来的结果是每个单独的y 值
谢谢赐教 |
l******t 发帖数: 96 | 2 没有求和呀
function里面直接 sum(0.3^(0:n))就好了吧,要是嫌这个不好看,也可以直接写出解
析式:
(1 - 0.3^(n+1)) /(1 - 0.3)
【在 l**********8 的大作中提到】 : 新手学R : 要求求和 y(n)=1+x+x^2+x^3+....x^n , where x=0.3, n=55 : my.result <- function(n) { : for(i in 0:n) { : y <- 0.3^i : print(y) } : return(y) : } : my.result(55) : 为啥出来的结果是每个单独的y 值
|
R*****0 发帖数: 146 | 3 LZ看来接触编程不久啊,多找机会练习一下吧。
for之前加一行初始化y<-0,然后把y<-0.3^i改成y<-y+0.3^i,当然R的好处就是可以像
LS说的用sum直接对向量求和。
【在 l**********8 的大作中提到】 : 新手学R : 要求求和 y(n)=1+x+x^2+x^3+....x^n , where x=0.3, n=55 : my.result <- function(n) { : for(i in 0:n) { : y <- 0.3^i : print(y) } : return(y) : } : my.result(55) : 为啥出来的结果是每个单独的y 值
|
l**********8 发帖数: 305 | |
v*******e 发帖数: 11604 | 5 既然用R了,就不要用 <- 了,我都是用 =,和其他语言接轨。 |
l******t 发帖数: 96 | 6 呵呵,我怎么觉得正好相反,google的R style guide也这么写
https://google-styleguide.googlecode.com/svn/trunk/Rguide.xml#assignment
不过这些都是小事,只要consistent就行
【在 v*******e 的大作中提到】 : 既然用R了,就不要用 <- 了,我都是用 =,和其他语言接轨。
|
l******n 发帖数: 9344 | 7 你这么去面试被人据了都不知道为啥
【在 v*******e 的大作中提到】 : 既然用R了,就不要用 <- 了,我都是用 =,和其他语言接轨。
|
l**********8 发帖数: 305 | 8 新手学R
要求求和 y(n)=1+x+x^2+x^3+....x^n , where x=0.3, n=55
my.result <- function(n) {
for(i in 0:n) {
y <- 0.3^i
print(y) }
return(y)
}
my.result(55)
为啥出来的结果是每个单独的y 值
谢谢赐教 |
l******t 发帖数: 96 | 9 没有求和呀
function里面直接 sum(0.3^(0:n))就好了吧,要是嫌这个不好看,也可以直接写出解
析式:
(1 - 0.3^(n+1)) /(1 - 0.3)
【在 l**********8 的大作中提到】 : 新手学R : 要求求和 y(n)=1+x+x^2+x^3+....x^n , where x=0.3, n=55 : my.result <- function(n) { : for(i in 0:n) { : y <- 0.3^i : print(y) } : return(y) : } : my.result(55) : 为啥出来的结果是每个单独的y 值
|
R*****0 发帖数: 146 | 10 LZ看来接触编程不久啊,多找机会练习一下吧。
for之前加一行初始化y<-0,然后把y<-0.3^i改成y<-y+0.3^i,当然R的好处就是可以像
LS说的用sum直接对向量求和。
【在 l**********8 的大作中提到】 : 新手学R : 要求求和 y(n)=1+x+x^2+x^3+....x^n , where x=0.3, n=55 : my.result <- function(n) { : for(i in 0:n) { : y <- 0.3^i : print(y) } : return(y) : } : my.result(55) : 为啥出来的结果是每个单独的y 值
|
|
|
l**********8 发帖数: 305 | |
v*******e 发帖数: 11604 | 12 既然用R了,就不要用 <- 了,我都是用 =,和其他语言接轨。 |
l******t 发帖数: 96 | 13 呵呵,我怎么觉得正好相反,google的R style guide也这么写
https://google-styleguide.googlecode.com/svn/trunk/Rguide.xml#assignment
不过这些都是小事,只要consistent就行
【在 v*******e 的大作中提到】 : 既然用R了,就不要用 <- 了,我都是用 =,和其他语言接轨。
|
l******n 发帖数: 9344 | 14 你这么去面试被人据了都不知道为啥
【在 v*******e 的大作中提到】 : 既然用R了,就不要用 <- 了,我都是用 =,和其他语言接轨。
|
s******l 发帖数: 65 | 15 我也觉得用=更顺手。为啥用=会悲剧?
【在 l******n 的大作中提到】 : 你这么去面试被人据了都不知道为啥
|
w*****r 发帖数: 92 | 16 =是splus的,R用<-
【在 s******l 的大作中提到】 : 我也觉得用=更顺手。为啥用=会悲剧?
|
g*****o 发帖数: 812 | 17 好像是个赋值问题,一般情况没有区别
【在 w*****r 的大作中提到】 : =是splus的,R用<-
|
v*******e 发帖数: 11604 | 18
正相反吧,R用=,<-是splus的。
【在 w*****r 的大作中提到】 : =是splus的,R用<-
|
r********y 发帖数: 18 | 19 而且在算法上很不efficient, 这种问题有经典的算法的, 查Horner's Rule
【在 R*****0 的大作中提到】 : LZ看来接触编程不久啊,多找机会练习一下吧。 : for之前加一行初始化y<-0,然后把y<-0.3^i改成y<-y+0.3^i,当然R的好处就是可以像 : LS说的用sum直接对向量求和。
|
p****0 发帖数: 1786 | 20 弱问R支持recursive不?(懒得google或者自己试了) |
p****0 发帖数: 1786 | 21 半天没人回答,逮着个空自己试了下:
my.result<-function(n){
if(n>=1){
return((my.result(n-1)+.3^n))
}else{
return(1)
}
}
【在 p****0 的大作中提到】 : 弱问R支持recursive不?(懒得google或者自己试了)
|
f*******m 发帖数: 94 | 22 根据楼上提示:
my.result <- function(n) {
y <- 0
for(i in 0:n) {
y <- y + 0.3^i
#print(y)
}
return(y)
}
my.result(55) |