为R中数据框中的某些情况添加值

为R中数据框中的某些情况添加值,r,R,我有一个数据框,其中有一个名为store的数字列,它有一些负值。我想在负片上加1440,但我遇到了麻烦。我的数据如下所示: score 1 816 2 -200 3 976 4 -376 5 1 6 121 7 -331 我可以使用您的警告消息中的temp[temp$score

我有一个数据框,其中有一个名为store的数字列,它有一些负值。我想在负片上加1440,但我遇到了麻烦。我的数据如下所示:

   score
  1  816
  2 -200
  3  976
  4 -376
  5    1
  6  121
  7 -331

我可以使用您的警告消息中的
temp[temp$score<0]替换这些值,看起来您正在尝试执行以下操作:

temp$score[temp$score < 0] <- temp$score + 1440 

temp$score[temp$score<0]如评论中所述,如果存在NA数据,则订阅将失败:

> temp
   score z
1    123 1
2     NA 2
3    345 3
4 -10783 4
5   1095 5
6    873 6
> temp$score[temp$score < 0] <- temp$score[temp$score < 0] + 1440
Error in temp$score[temp$score < 0] <- temp$score[temp$score < 0] + 1440 :  
  NAs are not allowed in subscripted assignments

没问题!我无法运行
temp[temp$score只是为了好玩,你也可以这样做:
temp$score@CarlWitthoft如果任何分数都是NA值,你的方法就可以工作。否则你最终尝试用NA下标,这是失败的……你可以用
which
函数来解决这个问题……嘿,引用你自己的评论是不公平的!:-)
temp$score[temp$score < 0] <- temp$score + 1440 
score <- c(816,-200,976,-376,1,121,-331)
temp <- data.frame(score)
temp$score[temp$score < 0] <- temp$score[temp$score < 0] + 1440 
> temp
   score z
1    123 1
2     NA 2
3    345 3
4 -10783 4
5   1095 5
6    873 6
> temp$score[temp$score < 0] <- temp$score[temp$score < 0] + 1440
Error in temp$score[temp$score < 0] <- temp$score[temp$score < 0] + 1440 :  
  NAs are not allowed in subscripted assignments
> temp$score[which(temp$score < 0)] <- temp$score[which(temp$score < 0)] + 1440
> temp
  score z
1   123 1
2    NA 2
3   345 3
4 -9343 4
5  1095 5
6   873 6