R 解析长度不同的字符串

R 解析长度不同的字符串,r,parsing,R,Parsing,我试图解析一个估计工资的字符串,以创建一个名为“Salary.Min”的新字段,该字段应该是一个数值。这看起来很简单,我可以用一个快速的case语句在SQL中处理这个问题,但是我在翻译成R时遇到了麻烦 我需要在这里使用for循环还是有更有效/简单的方法?一般来说,我希望执行类似于“如果字符串中的第4个字符=K,则返回字符2:3,否则返回字符2:4”的操作 这段代码一开始似乎还可以,但在验证之后,我意识到它正在删除所有第4个字符=K的记录(即最低工资为$100k+) >ifelse( >subst

我试图解析一个估计工资的字符串,以创建一个名为“Salary.Min”的新字段,该字段应该是一个数值。这看起来很简单,我可以用一个快速的case语句在SQL中处理这个问题,但是我在翻译成R时遇到了麻烦

我需要在这里使用for循环还是有更有效/简单的方法?一般来说,我希望执行类似于“如果字符串中的第4个字符=K,则返回字符2:3,否则返回字符2:4”的操作

这段代码一开始似乎还可以,但在验证之后,我意识到它正在删除所有第4个字符=K的记录(即最低工资为$100k+)

>ifelse(
>substr(数据_public$Salary.Estimate,4,4)=“K”,

>data\u public$Salary.Min data\u public$Salary.Min我们可以使用
trimws
substr
将其缩短。在这里,我们将
substr
从2个字符改为4个字符,并将
trimws
中的
空格指定为“K”,其中
哪个='right'
表示匹配尾随字符性格

data_public$Salary.Min <- trimws(substr( data_public$Salary.Estimate, 2, 4), 
      which = 'right', whitespace = "K")

ifelse
代码中,分配应在
ifelse

data_public$Salary.Min<- with(data_public, 
          ifelse(substr(Salary.Estimate, 4, 4) == "K",
             substr(Salary.Estimate, 2, 3), substr(Salary.Estimate,2, 4)))
  

data\u public$Salary.Min我们可以使用
trimws
substr
将其缩短。在这里,我们将
substr
从2个字符改为4个字符,并将
trimws
中的
空格指定为“K”,其中
which='right'
表示匹配尾随字符

data_public$Salary.Min <- trimws(substr( data_public$Salary.Estimate, 2, 4), 
      which = 'right', whitespace = "K")

ifelse
代码中,分配应在
ifelse

data_public$Salary.Min<- with(data_public, 
          ifelse(substr(Salary.Estimate, 4, 4) == "K",
             substr(Salary.Estimate, 2, 3), substr(Salary.Estimate,2, 4)))
  

data\u public$Salary.Min
data\u public$Salary.Min
data\u public$Salary.Min