我有刑事判决数据,其中包含一个文本变量,其中包含诸如“2 个月监禁”、“14 个月监禁”、“12 个月社区监督”之类的短语。我想运行一个逻辑回归来确定特定被告被送进 jail 或 jail 的几率,或者他们是否被释放到社区监督。所以我想创建一个二进制变量,它显示 1 代表被送到“ jail ”/“ jail ”的人,而 0 代表被送到另一个程序的人

我曾尝试使用 library(qdap) 但没有任何运气。我也试过 ifelse(df$text %in% "jail", "1", "0") 但当我知道有几千个时它只显示 1 个观察结果。

小数据样本:

data<-data.frame('caseid'=c(1,2,3),'text'=c("went to prison","went to jail","released"))

  caseid           text
1      1 went to prison
2      2   went to jail
3      3       released

尝试创建一个二进制变量 - sentenced - 进行逻辑分析,例如:
  caseid           text sentenced
1      1 went to prison         1
2      2   went to jail         1
3      3       released         0

感谢您提供的任何帮助!

最佳答案

您可以在基础 R 中执行以下操作

transform(data, sentenced = +grepl("(jail|prison)", text))
#  caseid           text sentenced
#1      1 went to prison         1
#2      2   went to jail         1
#3      3       released         0

说明: "(jail|prison)" 匹配 "jail""prison" ,一元运算符 +grepl 的输出转换为 integer

关于r - 如何使用文本变量中的关键字为逻辑回归创建二元变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57914785/

10-10 21:16