首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C变量赋值和R等价

C变量赋值和R等价
EN

Stack Overflow用户
提问于 2012-09-03 17:45:32
回答 2查看 193关注 0票数 1

大家好,我正在尝试理解C中的以下变量赋值,并尝试用R重写它。我经常使用R,但实际上只看了一眼C。

代码语言:javascript
运行
复制
    int age,int b_AF,int b_ra,int b_renal,int b_treatedhyp,int b_type2,double bmi,int ethrisk,int fh_cvd,double rati,double sbp,int smoke_cat,int surv,double town
    )
    {
        double survivor[3] = {
            0,
            0.996994316577911,
            0.993941843509674

        };
    a = /*pre assigned*/ 
    double score = 100.0 * (1 - pow(survivor[surv], exp(a)) );
    return(score);
}

survivorsurv在这种情况下是如何工作的?一个解释将是有帮助的,任何关于如何在R中完成作业的输入都将是额外的。

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-03 17:53:20

这是一个聚合初始化器:

代码语言:javascript
运行
复制
double survivor[3] = {
    0,
    0.996994316577911,
    0.993941843509674
};

并且等同于:

代码语言:javascript
运行
复制
double survivor[3];
survivor[0] = 0;
survivor[1] = 0.996994316577911;
survivor[2] = 0.993941843509674;

survivor[surv]是存储在survivor数组的索引处的值。数组索引从0运行到N - 1,因此如果surv1,则survivor[surv]的值为0.996994316577911

请注意,当前编写的函数不会检查surv是否为数组survivor (即surv > -1surv < 3)的有效索引,并且存在未定义行为的风险。

票数 4
EN

Stack Overflow用户

发布于 2012-09-03 18:07:04

给定@hmjd的答案,则R等效项将为

代码语言:javascript
运行
复制
survivor <- c(0, 0.996994316577911, 0.993941843509674)

或者如果survivor已经存在,并且您希望将其赋值给前3个元素:

代码语言:javascript
运行
复制
survivor[1:3] <- c(0, 0.996994316577911, 0.993941843509674)

(请注意,R的索引是基于1的,而不是C的基于0的索引。)

至于提取,大体思想与C语言相同,但细节很重要:

代码语言:javascript
运行
复制
R> survivor[0] ## 0 index returns an empty vector
numeric(0)
R> survivor[-1] ## negative index **drops** that element
[1] 0.9969943 0.9939418
R> survivor[10] ## positive outside length of vector returns NA
[1] NA
R> surv <- 2
R> survivor[surv] ## same holds for whatever surv contains
[1] 0.9969943
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12245453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档