在R中,如何检查一列中的记录是否与值匹配,如果匹配,则更改另一列中的记录?

时间:2018-08-01 17:31:42

标签: r conditional

我在R中有以下数据:

name               coltype     x     y
ADDL_AUTH_AMT      DECIMAL     11    2
BILL_NAME           CHAR       30    0
BIRTH_DATE          DATE       4     0

我想做的是检查第二列是否为“ DECIMAL”,如果是,请将x的值更改为x + 1。这是我尝试过的:

db2$coltype2 <- ifelse(db2$COLTYPE %in% c('DECIMAL'), db2$LENGTH+1, db2$LENGTH)

基本上,如果COLTYPE为DECIMAL,则取长度并加1。如果不是,则使用长度值。它创建了一个新列,但具有完全相同的值,并且没有任何变化。

如何检查列中的行是否等于值/字符串,然后更改另一列中的行?

1 个答案:

答案 0 :(得分:1)

我们需要更改列名

ifelse(db2$COLTYPE %in% c('DECIMAL'), db2$x+1, db2$x)