
[code]

    kin<-c(-3,5,7,-6)
    kin1<-kin[0<=kin] #0以上
    kin2<-kin[0>kin]  #0未満
    
    y<-c(1,2,3,4)
    
    kihon<-data.frame(y) #データフレーム作成
    
[/code]

プラスとマイナスを条件分岐で計算

[code]

    for(i in 1:length(kin){
     if(kin1){
      pu<-data.frame(kin1*10) #プラスの計算
      colnames(pu)<-c("point") #ポイント名の変更
     }
     if(kin2){
      mi<-data.frame(kin2*30) #マイナスの計算
      colnames(pu)<-c("point") #ポイント名の変更
     }
    }
    
    pumi<-rbind(pu,mi) #プラスとマイナスのデータを連結
    mydata<-data.frame(y,pumi) #データフレーム完成
    
[/code]

このようにコードを書くと

> There were 50 or more warnings(use warning() to see the first 50)

上記のような赤メッセージが表示されます。

あと、mydataのデータフレームはpumiのマイナスとプラスを分けて別の方法で計算してから、もう一度同じ列に入れなおしているので、yのデータのような1,2,3,4の並びになりません。

データフレームと上の赤メッセージはどのように対処すればよいでしょうか。


CC BY-SA 4.0
2017-10-04T10:25:42.607
38427
2019-10-03T22:03:05.470
2018-10-03T00:37:26.077
19769
25636
question
r
Rで条件分岐でデータフレームを作成したらエラーがでる


なさりたいのはこういう事でしょうか？

[code]

    kin <- c(-3, 5, 7, -6)
    y <- c(1, 2, 3, 4)
    
    kihon <- data.frame(y, point = NA)  #データフレーム作成
    
    # プラスとマイナスを条件分岐で計算
    for(i in 1:length(kin)){
      if(kin[i] >= 0){
        kihon[i, "point"] <- kin[i] * 10  #ポイント名の変更
      }
      if(kin[i] < 0){
        kihon[i, "point"] <- kin[i] * 30  #ポイント名の変更
      }
    }
    
    kihon  #データフレーム完成
    
[/code]

参考までに、以下のやり方のほうがシンプルでわかりやすいかと思います。

[code]

    kin <- c(-3, 5, 7, -6)
    kihon <- data.frame(kin, point = ifelse(kin >= 0, kin * 10, kin * 30))
    kihon
    
[/code]


CC BY-SA 3.0
2017-10-05T02:58:03.173
38448
2017-10-05T02:58:03.173
25218
38427
answer