R 我收到';我的函数的{';消息中出现意外的{&';消息-无法看到这是在哪里,也无法理解函数无法工作的原因

R 我收到';我的函数的{';消息中出现意外的{&';消息-无法看到这是在哪里,也无法理解函数无法工作的原因,r,function,if-statement,while-loop,R,Function,If Statement,While Loop,我希望将数据集中的变量组合成一个饼图。我的函数返回一个错误“unexpected{in”{” 我希望数据过滤成4组,然后在调用函数时绘制在饼图中 我已尝试打开和关闭while循环或移动饼图命令 data2<- read.csv("dataset1_r.csv", header = T, sep = ",") head(data2) mut1_func<- function(sex, age, mutation1, mutation2, exprs)

我希望将数据集中的变量组合成一个饼图。我的函数返回一个错误“unexpected{in”{”

我希望数据过滤成4组,然后在调用函数时绘制在饼图中

我已尝试打开和关闭while循环或移动饼图命令

data2<- read.csv("dataset1_r.csv", header = T, sep = ",")                 
head(data2)

mut1_func<- function(sex, age, mutation1, mutation2, exprs){
  a<-sex
  b<-age
  c<-mutation1
  d<-mutation2
  e<-exprs

  i<-1
  j<-200
  myresult2<-c()
  myresult3<-c()
  myresult4<-c()
  myresult5<-c()

  while (i<j){ ### while loop opens

    if (data2$mutation1[i] == 1 & data2$mutation2[i] == 1) {

      myresult2<-append(myresult2, data2$mutation1[i],data2$mutation2[i], i)

    } else if (data2$mutation1[i] == 1 & data2$mutation2[i] == 2) {

      myresult3<-append(myresult3, data2$mutation1[i], data2$mutation2[i], i)

    } else if (data2$mutation1[i] == 2 & data2$mutation2[i] == 1) {

      myresult4<-append(myresult4, data2$mutation1[i], data2$mutation2[i], i)

    } else (data2$mutation1[i] == 2 & data2$mutation2[i] == 2) {                            

      myresult5<-append(myresult5,data2$mutation1[i], data2$mutation2[i], i)

    }

     x<-c(myresult2, myresult3, myresult4, myresult5)
  labels<-c("Both", "Mutation 1", "Mutation 2", "Neither")
  pie(x, labels)

}

data2最后一个else有这个条件,没有if
(data2$mutation1[i]==2&data2$mutation2[i]==2)
,所以它看起来很混乱

试试这个

mut1_func<- function(sex, age, mutation1, mutation2, exprs){
        a<-sex
        b<-age
        c<-mutation1
        d<-mutation2
        e<-exp
        rs

        i <- 1
        j <- 200
        myresult2 <- c()
        myresult3 <- c()
        myresult4 <- c()
        myresult5 <- c()

        while (i < j) {
            if (data2$mutation1[i] == 1 & data2$mutation2[i] == 1) {
                myresult2 <-append(myresult2, data2$mutation1[i], data2$mutation2[i], i)
            } else if (data2$mutation1[i] == 1 & data2$mutation2[i] == 2) {
                    myresult3 <- append(myresult3, data2$mutation1[i], data2$mutation2[i], i)
                } else if (data2$mutation1[i] == 2 & data2$mutation2[i] == 1) {
                    myresult4 <- append(myresult4, data2$mutation1[i], data2$mutation2[i], i)
                } else  { #(data2$mutation1[i] == 2 & data2$mutation2[i] == 2)
                        myresult5 <- append(myresult5, data2$mutation1[i], data2$mutation2[i], i)
                    }
            x <- c(myresult2, myresult3, myresult4, myresult5)
            labels <- c("Both", "Mutation 1", "Mutation 2", "Neither")
            pie(x, labels)
        }
    }

mut1_func最后一个else有这个条件,没有if
(data2$mutation1[i]==2&data2$mutation2[i]==2)
,所以它看起来很混乱

试试这个

mut1_func<- function(sex, age, mutation1, mutation2, exprs){
        a<-sex
        b<-age
        c<-mutation1
        d<-mutation2
        e<-exp
        rs

        i <- 1
        j <- 200
        myresult2 <- c()
        myresult3 <- c()
        myresult4 <- c()
        myresult5 <- c()

        while (i < j) {
            if (data2$mutation1[i] == 1 & data2$mutation2[i] == 1) {
                myresult2 <-append(myresult2, data2$mutation1[i], data2$mutation2[i], i)
            } else if (data2$mutation1[i] == 1 & data2$mutation2[i] == 2) {
                    myresult3 <- append(myresult3, data2$mutation1[i], data2$mutation2[i], i)
                } else if (data2$mutation1[i] == 2 & data2$mutation2[i] == 1) {
                    myresult4 <- append(myresult4, data2$mutation1[i], data2$mutation2[i], i)
                } else  { #(data2$mutation1[i] == 2 & data2$mutation2[i] == 2)
                        myresult5 <- append(myresult5, data2$mutation1[i], data2$mutation2[i], i)
                    }
            x <- c(myresult2, myresult3, myresult4, myresult5)
            labels <- c("Both", "Mutation 1", "Mutation 2", "Neither")
            pie(x, labels)
        }
    }

mut1\u func当
循环时,你从未关闭过你的
(或者你从未关闭过你的函数)。在最后再添加一个
}
,你的代码应该可以工作(除非出现其他可能的错误).@TimBiegeleisen仍在接收相同的错误消息,不幸的是,我不相信。该消息至少应该已经更改了。@TimBiegeleisenI在我的代码末尾添加了一个},并且收到了错误:“}”中意外的“}”。这确实是和以前一样的信息。我不知道你不买它是什么意思?@NelsonGon有没有其他方法可以将这些信息子集?你从来没有关闭过
循环(或者你从来没有关闭过函数)。最后再添加一个
}
,您的代码应该可以工作(除非出现其他可能的错误)。@TimBiegeleisen仍然收到同样的错误消息,不幸的是,我不相信这一点。消息至少应已更改。@TimBiegeleisenI在代码末尾添加了一个},并收到错误:“}”中出现意外的“}”。这确实是和以前一样的信息。我不知道你不买它是什么意思?@NelsonGon是否有其他方法将此信息子集?请以后不要回答打字错误问题,请投票关闭。请以后不要回答打字错误问题,请投票关闭。