根据R中另一列中的行更新列行

时间:2017-08-15 21:32:26

标签: r

我有一个如下面R中给出的数据集。我正在尝试更新描述列中的空单元格' 0'列值中的值。

 Criteria     Value   Description 
 Success       0                                      
 Success      21      look up
 Success      20      repeat
 Success      19      What is this
 Success      18      Transition
 Success      17      Program
 Success       0              

我很感激任何帮助来解决这个问题。我想要获得的输出如下:

 Criteria     Value   Description 
 Success       0      TEST                             
 Success      21      look up
 Success      20      repeat
 Success      19      What is this
 Success      18      Transition
 Success      17      Program
 Success       0      TEST 

感谢,

2 个答案:

答案 0 :(得分:1)

可以使用ifelse()语句。

假设您的数据框被调用"数据集",您可以使用ifelse()语句将Value列检查为0.如果它是0,它将输入值" TEST&# 34;在“描述”列中。如果它不是0(else),那么它将只输入列中已存在的值。

 dataset$Description <- ifelse(dataset$Value == 0, 
                               "TEST" , 
                               dataset$Description)

答案 1 :(得分:1)

有几种选择:

基础R - 选项1

padding-top: 5px;

基础R - 选项2

mydf$Description[mydf$Value == 0] <- "TEST"

dplyr - if_else()

mydf$Description <- if.else(mydf$Value == 0, "TEST", mydf$Description)

dplyr - case_when()

当需要评估一些if语句时很有用。

library("dplyr")
mydf <- mydf %>% mutate(Description = if_else(Value == 0, "TEST", Description))