我有刑事判决数据,其中包含一个文本变量,其中包含诸如“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/