我正在尝试创建一个新列,该列将根据另一列的条件返回Yes或No。
我尝试使用exitSig
,library(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)
和grepl
,substr
。问题是该数据在我要设置条件的列中包含字符和数字。
nchar
我要创建一个新列,如果满足以下条件,则该列将是或否。如果第一个数字以6开头且长度为3,则返回“是”,否则返回“否”。
示例:
ifelse
以上所有都将返回是
(nchar(as.character(expo$BuyerNumber)) == 3)
(substr(as.character(expo$BuyerNumber),1,1 == 6))
以上所有均不返回
答案 0 :(得分:0)
我看到的一个问题可能是您正在将substr(将给出一个字符)与一个数字进行比较。这很可能会产生错误的布尔值。 像下面这样。
(nchar(as.character(expo$BuyerNumber)) == 3)
(as.integer(substr(as.character(expo$BuyerNumber),1,1)) == 6)
如果它不起作用,请告诉我。