r - 尝试使用 for-loop 访问 gregexpr 结果的第一个值但只获得 -1 - 意外结果
问题描述
我正在使用 gregexpr 来查找与“犯罪”或“盗窃”相关的观察结果。我从这段代码开始:
test <- gregexpr("criminal|theft", df.cleaned$Nature, ignore.case = T)
这是测试的数据输出:https ://pastebin.com/XFQXPx4A
如果 gregexpr 输出的第一个元素的输出为 -1,则 df.cleaned$Nature 的相应行不包含“犯罪”或“盗窃”。我试图仅提取该数据以最终确定这些字符串出现的位置。
例如:
> df.cleaned$Nature[1]
[1] "Criminal Trespass"
因此,
> test[[1]][1]
[1] 1
反过来:
> df.cleaned$Nature[15]
[1] "Drug Law Violation"
因此,
> test[[15]][1]
[1] -1
所以我尝试构建这个for循环:
results <- vector(length=length(test))
for (i in seq_along(test)) {
results[1] <- test[[i]][1]
results <- data.frame(results)
}
但是输出只有-1的434个值。是什么赋予了?
解决方案
尝试:
results <- vector(length=length(test))
for (i in seq_along(test)) {
results[[i]] <- test[[i]][1]
}
推荐阅读
- sql - 阶乘之和
- python - 如何设计 Python 代码以方便第三方的插件/定制
- java - 为什么这个 GUI 应用程序不显示图像?
- excel - 具有相同结果的第二、第三最佳值(VLOOKUP、MATCH...)
- javascript - 使用 CodeMirror 简单模式“覆盖”多个标记/规则/样式的方法?
- javascript - 使用 react-select V2 进行正确的组件样式组合
- 3d - 检测 3D 网格上的水平和垂直表面
- spring-boot - 无法将“服务器”下的属性绑定到 org.springframework.boot.autoconfigure.web.ServerProperties:
- javascript - 在 Node.js ES6 中使用 eval 创建变量失败
- swift4.1 - 如何以编程方式浏览按钮