2
我一直在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
我想确定有“杰夫”在他们 这样我就可以使用,作为一个组或所有名称entires分配一个虚拟变量。换句话说,追加 我的数据帧是这样的:
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
这让我这个数据帧
有谁知道更基本的方法?
圣牛。我试过这个,它是soclose: 子集(name.list,grepl(“jeff”,name.list $ Name)) 我没想过要删除子集命令。 非常感谢! –
不要忘记给Andrie他的复选标记。如果你想要1/0,那么在'grepl'调用周围包装'as.numeric'。 –
很酷。点击复选标记。第一次使用stackoverflow。感谢您对协议的支持 –