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。感謝您對協議的支持 –