r - R分析大数据框列中的字符串并在单独的列中给出值
问题描述
我有一个包含 20 列的数据框。其中一列由字符串组成。我想分析 R 中特定字母位置的字符串,然后在不同的列中基于此分配一个值。例如,如果字符串是 ABCDEF、AADFEG,我想创建一个包含值的新列,如果 A 位于位置 1,则为 1。如果 A 位于位置 1,2,则为 1,2。7 如果 G 位于第 6 位。我一直在尝试使用 str_locate 和 if_else,然后使用 dplyr 包进行变异,但不确定是否有更简单的方法可以做到这一点。谢谢!
解决方案
我创建了一个小代码片段:
df<-data.frame(a=c("ABCDEF","AADFEG","TRETGTGA"))
df$b<-lapply(gregexpr(pattern = 'A', df$a), function(x) c(unlist(x)) )
在这里,您在向量df$a的每个条目上应用正则表达式并找到模式A ,从而得到所有A的索引。使用lapply提取结果(=索引)。最后,您将结果分配给数据框中的新列。
笔记
如果找不到模式,则显示 -1。
推荐阅读
- react-native - 出现错误:无法从 react-native Metro 服务器解析模块`./YellowBoxImageSource`
- javascript - 如何在 Vue-router 中使用 $router.push?
- javascript - 如何在响应原生的平面列表中从 SQLite 数据库中检索数据?
- python - tf.keras 输入层仅在推理期间使用
- javascript - 提交表单时如何防止页面重置
- javascript - Firebase 更新(如果存在)
- javascript - 带有硬编码日期的 JavaScript Date.getDay() 返回错误的日期?
- ios - SCNNode 未显示在 ARFrame 的 captureImage 中
- flutter - Flutter - Dependent/Multilevel DropdownButton 有一个问题:应该只有一项具有 [DropdownButton] 的值:Ointments
- python - GPU-Util 接近 0%,但 GPU 内存较高