r - 在 R 中寻找更好的方法来按字段的一部分进行分组

标签 r

我一直在 R 中寻找一个命令,它允许我仅按字段中的一部分而不是整个字段进行分组。我想出了一个可行的解决方法,但它有点麻烦和笨拙。这是一个测试数据框

name.list = data.frame(Name=c("jeff banks", "phil lender", "jeff brooks",
"barbara holcomb", "danny jefferson"),Age=c(27,34,25,45,32))
name.list

这是输出

             Name Age
1      jeff banks  27
2     phil lender  34
3     jeff brooks  25
4 barbara holcomb  45
5 danny jefferson  32

我想识别所有包含“jeff”的姓名 所以我可以将其作为一个组使用或分配一个虚拟变量。换句话说,附加 我的数据框是这样的:

             Name Age   Jeff.field
1      jeff banks  27       1
2     phil lender  34       0
3     jeff brooks  25       1
4 barbara holcomb  45       0
5 danny jefferson  32       1

我想出了这个解决方案,但它不是很优雅

name.list2=name.list[grep("jeff",name.list$Name),]
name.list2$jeff.field=rep(1,dim(name.list2)[1])

name.list3=name.list[-grep("jeff",name.list$Name),]
name.list3$jeff.field=rep(0,dim(name.list3)[1])

name.list4=rbind(name.list2,name.list3)
name.list4

这让我得到这个数据框

             Name Age jeff.field
1      jeff banks  27          1
3     jeff brooks  25          1
5 danny jefferson  32          1
2     phil lender  34          0
4 barbara holcomb  45          0

有人知道更基本的方法吗?

最佳答案

给你:

name.list$jeff.field <- grepl("jeff", name.list$Name)
name.list[order(name.list$jeff.field), ]

             Name Age jeff.field
2     phil lender  34      FALSE
4 barbara holcomb  45      FALSE
1      jeff banks  27       TRUE
3     jeff brooks  25       TRUE
5 danny jefferson  32       TRUE

关于r - 在 R 中寻找更好的方法来按字段的一部分进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10955340/

相关文章:

r - 如何将plot中的单变量列表图表转换为ggplot2格式?

r - 如何提取div内第二个p元素中的文本

r - 直方图中条形图一角的数字,如何让它们在条形图下方居中?

perl @array 数据到 R

python - 为什么 R 和 Python 中加载包的默认命名空间行为不同?

r - R错误消息中的函数sweep()

r - 使用 HDF5 保存 Julia 数据帧以在 R 中读取

r - 如何将字符串传递给函数中的 dplyr 过滤器?

r - 计算数据框中点组之间的最小距离

r - 在 ggplotly 散点图上添加辅助 x 和 y 轴