根据另一列R的条件语句创建一个新列

时间:2019-10-22 01:36:39

标签: r

我正在尝试创建一个新列,该列将根据另一列的条件返回Yes或No。

我尝试使用exitSiglibrary(grid) maps::map("world2Hires",regions = "New Zealand",xlim=c(171,183),ylim=c(-44,-34),col="lightgrey",fill=T) map.axes() rect(xleft = 176.5,ybottom = -34,xright = 182.5,ytop = -37,col = "white") par(usr=c(176.5, 182.5, -37, -35)) maps::map("world2Hires",regions = "New Zealand",xlim=c(174,176),ylim=c(-37,-36),col="black",fill=F,add=T) greplsubstr。问题是该数据在我要设置条件的列中包含字符和数字。

nchar

我要创建一个新列,如果满足以下条件,则该列将是或否。如果第一个数字以6开头且长度为3,则返回“是”,否则返回“否”。

示例:

ifelse

以上所有都将返回是

(nchar(as.character(expo$BuyerNumber)) == 3)
(substr(as.character(expo$BuyerNumber),1,1 == 6))  

以上所有均不返回

1 个答案:

答案 0 :(得分:0)

我看到的一个问题可能是您正在将substr(将给出一个字符)与一个数字进行比较。这很可能会产生错误的布尔值。 像下面这样。

(nchar(as.character(expo$BuyerNumber)) == 3)

(as.integer(substr(as.character(expo$BuyerNumber),1,1)) == 6)

如果它不起作用,请告诉我。