[英]Rstudio: Error while trying to use %in% operator in a dataframe
我想查找數據框的某個單元格是否包含一個單詞,該單詞存在於另一個數據框的另一個單元格中。 具體來說:
geoplaces$name[1]
的值: Athens
adresses$Comments[1]
的價值: Is he still in Athens?
但是當我執行以下腳本時:
if(geoplaces$name[1] %in% adresses$Comments[1]){
print("hello")
}else{print("error")}
結果我得到了“錯誤”。
對這有什么問題有什么建議嗎?
%in%
運算符正在尋找精確匹配。 在您的情況下,由單個元素“他還在雅典嗎?”組成的向量中不包含“雅典”
您可能對子字符串匹配感興趣。 有很多方法可以做到這一點。 您可以使用grepl
函數嘗試此操作:
if(grepl(geoplaces$name[1], adresses$Comments[1])) {
print("hello")
} else {
print("error")
}
在這里,您要檢查向量的第一個元素( geoplaces$name[1]
)與另一個向量的第一個元素( adresses$Comments[1]
)是否相同。 比較字符串是否相同。 但事實並非如此。 如果只希望元素(Athens)在列表中是合乎邏輯的,請嘗試使用正則表達式。 所以這應該工作: grepl(geoplaces$name[1], adresses$Comments[1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.