用公式中的对数变换进行预测

时间:2016-11-29 09:32:59

标签: r

想象一个简单的模型

package validation;
import java.util.*;

public class Validation {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String regex = "^[a-zA-Z ]+$";
       String regex1 = "\\d[0-9]|[1-9]";
       String regex2 = "^[a-zA-Z0-9 ]+$";
        String Char;
         String num;
        String chars;
         System.out.println("WELCOME TO Mixed Martial Art's CLUB REGISTRATION");
        do{
            System.out.print("\nWhat Is Your Name:");
            Char = input.nextLine();

            if (Char.matches(regex))
                System.out.println("\nWelcome:"+" "+Char); 
            else if (Char.isEmpty())
                System.out.println("String field should not be Empty.");
            else if(!Char.matches(regex))
                System.out.println("Please Enter A Valid String!");
        } while(!Char.matches(regex));

        do {    
             System.out.print("\nHow Old Are you:");
             num = input.nextLine();
             if (num.isEmpty())
                 System.out.println("Number field should not be Empty.");       
             else if (!num.matches(regex1)){
                System.out.println("Please Enter A Valid Number!");
             } else{
                if(Integer.parseInt(num)<=18){
                   System.out.println("Sorry But You Are Underage.");                

                } else {
                    if (Integer.parseInt(num)<=39) {
                        System.out.println("You Are Qualified");
                    } else {
                        System.out.println("Opps! You Are OVER AGE!");
                    }
                }                     
            }
        }while(!num.matches(regex1));           
    }   
}

进行预测我们必须采用指数

fit <- lm(log(mpg) ~ cyl + hp, data = mtcars)

有没有更好的方法可以手动应用呢? exp(predict(fit, newdata = mtcars)) 的文档没有给出任何有用的提示。

我想,最简单的方法是从公式中提取转换函数

?predict

如何检查是否有任何转换应用于公式的左侧,是否有任何转换,以提取函数的名称?

1 个答案:

答案 0 :(得分:1)

我不确定它是否有帮助,但你可以用这种方式测试它: 将其转换为字符并检查它是否以log / sqrt等开头:

startsWith(as.character((formula(fit))[2]), "log")

错误的答案是正确的:

[1] TRUE

这可能有助于您自动化解决方案吗?