Tôi có một dataframe,chuỗi động vật phù hợp với từng phần trong R
d<-data.frame(name=c("brown cat", "blue cat", "big lion", "tall tiger",
"black panther", "short cat", "red bird",
"short bird stuffed", "big eagle", "bad sparrow",
"dog fish", "head dog", "brown yorkie",
"lab short bulldog"), label=1:14)
Tôi muốn tìm kiếm trên cột name
và nếu những lời "mèo", "sư tử", "con hổ", và "con beo "xuất hiện, tôi muốn gán chuỗi ký tự feline
cho cột mới và hàng tương ứng species
.
Nếu những lời "bird", "eagle", and "sparrow"
xuất hiện, tôi muốn gán chuỗi ký tự avian
đến một cột mới và hàng species
tương ứng.
Nếu từ "chó", "yorkie" và "bulldog" xuất hiện, tôi muốn gán chuỗi ký tự canine
cho cột mới và hàng tương ứng species
. Lý tưởng nhất, tôi sẽ lưu trữ nó trong một danh sách hoặc một cái gì đó tương tự mà tôi có thể giữ ở đầu của kịch bản, bởi vì như là các biến thể mới của các loài hiển thị trong thể loại tên, nó sẽ được tốt đẹp để có thể truy cập dễ dàng để cập nhật những gì đủ điều kiện là feline
, avian
và canine
.
Câu hỏi này gần như được trả lời ở đây (How to create new column in dataframe based on partial string matching other column in R), nhưng không giải quyết được sự biến đổi nhiều tên hiện diện trong vấn đề này.
điểm tốt về việc liệu có thể có nhiều kết quả trùng khớp hay không. @ Brocolli-Rob: có thể có một cột TRUE/FALSE cho mỗi loài sẽ là phương pháp tốt hơn nếu tình huống này có khả năng trong tập dữ liệu của bạn. – ping