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