全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6562 6
2008-06-15
 
R一般用什么写程序? 需要去下载winedit 或 vi 编辑器吗? 我看R自带的也有一个编辑器?它能用把?另外写好的代码一般存放在什么目录?应该放在工作目录把,跟matlab一样,是么?

另外就是它需要象matlab一样,要函数名什么的吗?保存的格式一定要是R文件吗?(类似于matlab的m文件)还有就是在控制台怎么运行,matlab是写上函数名就可以了,它了?
希望高手跟matlab做个类比,给个简单的例子。本人刚接触R
二维码

扫码加我 拉你入群

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

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

全部回复
2008-6-15 12:01:00

 Tinn-R  感觉不错.

R自带的不好用.

至于文件保存,工作目录的设定感觉和Matlab的大同小异

但在R中函数的调用运行同Matlab有差异.

在R中,R调用函数时只搜索已调用在内存中的相关函数,这就是说,即便已经存在目标函数,但没有调用到内存中,在控制台输入函数名也不会运行;

Matlab与此不同,只要在set path选项卡中search path包含相应的函数所在目录,那么无论是否调用内存,该函数总是能调用运行的.

[此贴子已经被作者于2008-6-15 12:04:48编辑过]

二维码

扫码加我 拉你入群

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

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

2008-6-15 16:03:00

2楼的你好,你这个地方说的调用到内存我没太弄明白,我想平常我们想用的函数应该已经调用到内存,不然我们就用不了,但是我们自己写的了?例如一段小程序,它怎么调用到内存,然后在控制台上使用?  另外,我也想知道这个小程序应该是什么格式,跟matlab对比说一下更好!谢谢

二维码

扫码加我 拉你入群

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

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

2008-6-15 23:54:00

我想到的就这些,不知说道要点了么.R大多自习的,多看文档,论坛好多R的文档的.

这是R一本教程中编写的一个函数,命名为 bisect.R并存放在C:\R\work,

可以通过菜单操作调用程序.但这里说命令操作:

setwd("c:\\R\\work") #工作目录设定为C:\R\work

source("bisext.R") #将函数调用内存,否则在控制台直接输入会提示错误

fzero("x^3-x-1",1,2) #可以使用该函数了 

#R中一个二分法求非线性方程根的函数

fzero<-function(f, a, b, eps=1e-5){
   if (f(a)*f(b)>0)
      list(fail="finding root is fail!")
   else{
      repeat {
         if (abs(b-a)<eps) break;
         x<-(a+b)/2;
         if (f(a)*f(x)<0) b<-x  else  a<-x
      }
      list(root=(a+b)/2, fun=f(x))
   }
}

%%作为对比,这是Matlab的二分法. 3年前的东西了,还好没删.

%%它命名为nabisect.m,位于c:matlab\work 中,work文件夹在 set path选项卡search path的搜索路径

%只要输入nabisect(fname,a,b,e)就可以运行,Matlab会在搜索路径搜索该函数,并自动加入内存.

%但 R需要用source(){或者通过菜单或者在控制台直接输入函数}来调入内存.

function x=nabisect(fname,a,b,e)
%Using: 二分法解非线性方程
%Fomart:x=nabisect(fname,a,b,e) fname为函数句柄或
%内嵌函数 表达式为f(x)  a,b为区间端点,e为精度(默认
%为1e-4) x为返回值,程序要求函数在两端点值必须异号
%,中间变量fa fb fx的引用可以最大限度减少fname调用次数
% 例子:fun=inline('x^3-3*x-1');
%      x=nabisect(fun,1,2,0.05)
if nargin<4,e=1e-4;end;
    fa=feval(fname,a);fb=feval(fname,b);
if fa*fb>0,error('函数在两端点值必须异号');end
    x=(a+b)/2;m=0;
    while (b-a)>(2*e),
        fx=feval(fname,x);m=m+1;
        if fa*fx<0,
            b=x;fb=fx;
        else a=x;fa=fx;
        end
        x=(a+b)/2;
    end

P.S.

filename.R 和 file.m 文件格式都可以用记事本打开,这表明.R和.m的文件同.txt文件仅仅扩展名不同.

二维码

扫码加我 拉你入群

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

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

2008-6-18 21:56:00

学习了,受益匪浅了,谢谢

二维码

扫码加我 拉你入群

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

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

2008-6-21 10:43:00

xiexie,收益菲浅!!!!:)

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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