楼主: xgrgr
10841 15

[问答] 如何查看包内的函数代码 [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.4818
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
103 点
帖子
13
精华
0
在线时间
7 小时
注册时间
2012-9-20
最后登录
2016-1-15

楼主
xgrgr 发表于 2016-1-12 13:29:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
查看R代码.jpg 编辑下:  系统是linux ubuntu14. 04
大家好,查看函数代码的时候,如图片所示,如何才能查看具体详细的函数代码

二维码

扫码加我 拉你入群

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

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

关键词:函数代码 Ubuntu Linux Lin NTU linux 图片 如何

沙发
jiangbeilu 学生认证  发表于 2016-1-12 13:33:16
首先,看这个函数在哪个包,然后google一下,到r的cran上,找到对应包的tar.gz源代码格式,下载下来后,在解压缩包里可以找到函数的源代码。
已有 1 人评分热心指数 收起 理由
求证1加1 + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

藤椅
xgrgr 发表于 2016-1-12 14:02:15
jiangbeilu 发表于 2016-1-12 13:33
首先,看这个函数在哪个包,然后google一下,到r的cran上,找到对应包的tar.gz源代码格式,下载下来后,在解 ...
你好感谢你的回答,这是个新包,还没有挂到CRAN上去,包已下载,包内我要看的那个函数只出现现一个文件,univaraite_eQTL.Rd,请问.Rd是什么文件,能转换成R代码吗

板凳
jiangbeilu 学生认证  发表于 2016-1-12 14:04:54
Rd,是Rmarkdown的文件,可以用notepad打开,你也可以用Rstudio打开。

报纸
xgrgr 发表于 2016-1-12 14:08:54
jiangbeilu 发表于 2016-1-12 14:04
Rd,是Rmarkdown的文件,可以用notepad打开,你也可以用Rstudio打开。
你好,我用RStudio打开了,我是这么想的,既然这个函数能被用来执行,和其他可以看到代码的函数并无两样,那么在R里面是不是对其进行了编译,既然能执行,为什么看不到代码

地板
jiangbeilu 学生认证  发表于 2016-1-12 14:14:10
xgrgr 发表于 2016-1-12 14:08
你好,我用RStudio打开了,我是这么想的,既然这个函数能被用来执行,和其他可以看到代码的函数并无两样, ...
可否告诉是哪个包,一般来说,肯定是有source code的。可能你的是经过编译的

7
xgrgr 发表于 2016-1-12 15:25:21
jiangbeilu 发表于 2016-1-12 14:14
可否告诉是哪个包,一般来说,肯定是有source code的。可能你的是经过编译的
你好,包名字是GOAL,下载网址 https://github.com/vinash85/GOAL

8
xgrgr 发表于 2016-1-12 15:25:24
jiangbeilu 发表于 2016-1-12 14:14
可否告诉是哪个包,一般来说,肯定是有source code的。可能你的是经过编译的
你好,包名字是GOAL,下载网址 https://github.com/vinash85/GOAL

9
xgrgr 发表于 2016-1-12 16:07:02
jiangbeilu 发表于 2016-1-12 14:14
可否告诉是哪个包,一般来说,肯定是有source code的。可能你的是经过编译的
是在ubuntu 14.04系统下,确实需要编译

10
jiangbeilu 学生认证  发表于 2016-1-12 16:16:20
  1. univariate_eQTL <- function(mask2, x, y, numRegulators, threads = 1L) {
  2.     .Call('GOAL_univariate_eQTL', PACKAGE = 'GOAL', mask2, x, y, numRegulators, threads)
  3. }
复制代码


这里用的.Call函数,是说明引用了内置函数GOAL_univariate_eQTL.
在src文件里找关于C或者cpp的文件。然后在RcppExports.cpp发现了这个函数:
  1. // univariate_eQTL
  2. arma::vec univariate_eQTL(arma::umat mask2, arma::mat x, arma::mat y, arma::vec numRegulators, int threads = 1);
  3. RcppExport SEXP GOAL_univariate_eQTL(SEXP mask2SEXP, SEXP xSEXP, SEXP ySEXP, SEXP numRegulatorsSEXP, SEXP threadsSEXP) {
  4. BEGIN_RCPP
  5.     SEXP __sexp_result;
  6.     {
  7.         Rcpp::RNGScope __rngScope;
  8.         Rcpp::traits::input_parameter< arma::umat >::type mask2(mask2SEXP );
  9.         Rcpp::traits::input_parameter< arma::mat >::type x(xSEXP );
  10.         Rcpp::traits::input_parameter< arma::mat >::type y(ySEXP );
  11.         Rcpp::traits::input_parameter< arma::vec >::type numRegulators(numRegulatorsSEXP );
  12.         Rcpp::traits::input_parameter< int >::type threads(threadsSEXP );
  13.         arma::vec __result = univariate_eQTL(mask2, x, y, numRegulators, threads);
  14.         PROTECT(__sexp_result = Rcpp::wrap(__result));
  15.     }
  16.     UNPROTECT(1);
  17.     return __sexp_result;
  18. END_RCPP
  19. }
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 06:33