如何在R中条件为TRUE时返回值

时间:2015-03-22 17:22:54

标签: r function

我正在通过编写一个考虑数字并返回其主要因子的函数来学习R(见下文)。

prime<-function(x){
    {num<-x %% 2:(x-1) == 0
        }
    return(num)}

我得到True或False的输出,但我正在寻找True的记录值。例如:如果x = 9,我将获得其素数因子3.我尝试了“num&lt; -any(x %% 2:(x-1)== 0)”和“num&lt; -which(x %% 2) :(x-1)== 0)“但是都没有带来预期的结果。您的建议会有很大帮助。

2 个答案:

答案 0 :(得分:1)

如果您使用

num <- which(x %% 2(x - 1) == 0) + 1

应该工作得很好。

答案 1 :(得分:1)

试试这个:

prime<-function(x){
    seq <- 2:(x-1)
    num<-x %%  seq == 0
    seq[num]
}
prime(9)
[1] 3