如果R中的偶数和奇数整数的其他语句

时间:2018-07-05 16:52:54

标签: r

我正在编写一个if else语句,该语句接受一个输入(工具,以条形码编号的形式)并输出工具名称和位置。
我也在编写它,以便当输入某个条形码编号(工具)时,它将添加到列名(TIMES.USED)中的运行总计中。我遇到了问题,因为我试图添加一个检入/检出列(状态),该语句基本上读取为,如果某项使用情况的值可以被2整除,则该项被检入。如果它不能被2整除,则项目已签出。这是我的数据框的结构以及到目前为止已经编写的代码:

数据框:

match_parent

代码:

Barcode.Number,    Type.Equipment,   Manufacture,   Times.Used,   Status
4041,             Flash Light,      Surefire,      1
4044,              Rope,             Surefire,      2      

我可以得到它,所以当我输入一个数字(如4041)时,它可以看到1为奇数,并将“输出”输出到“状态”列。问题是我不确定如何编写它以便将不同的状态输出到不同的行中,因为它只是输出到所有行中。谢谢!

1 个答案:

答案 0 :(得分:0)

使用match,我们可以找到所请求的条形码所在的行,然后进行分配  index。然后,我们使用index更改正确的状态值。

tool = as.integer(readline(prompt="Enter a number: "))
index<-match(tool, df$Barcode.Number)

df1 <- df %>% filter(df$Barcode.Number == tool) %>% 
select(Type.Equipment, Manufacture)    
if((df$TIMES.USED %% 2) == 0) {
df$Status[index] <- 'In'
} else {
df$Status[index] <- 'Out'
}

例如。

Tool<-c(10,21,31,42,51)
Data<-c("a","b","c","d","e")
Status<-c(NA,NA,NA,NA,NA)

df<-data.frame(Tool,Data,Status)

index<-match(10, df$Tool)

df$Status[index] <- 'In'

  Tool Data Status
1   10    a     In
2   21    b   <NA>
3   31    c   <NA>
4   42    d   <NA>
5   51    e   <NA>