我正在编写一个for循环,用于检查特定列中的值是否与预定义列表匹配。
所以它有点像这样:
money <- read.csv2("money.csv", header = T)
#set counter
count_financial = 1
#set list
financial_items <- c("bank", "ABN Amro")
for (i in 1:nrow(money)) {
if(money$Description[i] in financial_items ) {
count_financial = count_financial + 1
}
}
它现在正在工作但我实际上想稍微调整一下并使用元字符。所以我只能找到说“银行”或“荷兰银行”的项目,还有“银行成本”或“荷兰银行交易”的行。
有关我如何做到这一点的任何想法?
答案 0 :(得分:0)
你可以尝试
filtered <- money[grep("bank|ABN Amro",money$Description,ignore.case=TRUE),]
count_financial <- nrow(filtered)
答案 1 :(得分:0)
尝试:
length(financial_items %in% money$Description)
但是如果你打算使用循环:
for (i in 1:nrow(money)) {
if(money$Description[i] %in% financial_items ) {
count_financial = count_financial + 1
}
}
<强>更新强>
重新阅读问题后,我认为您正在寻找:
length(grep("bank|abn amro", money$Description, ignore.case=TRUE))