我正在使用以下函数在数据框中基于与其他列匹配的部分字符串创建新列:
ff = function(x, patterns, replacements = patterns, fill = NA, ...)
{
stopifnot(length(patterns) == length(replacements))
ans = rep_len(as.character(fill), length(x))
empty = seq_along(x)
for(i in seq_along(patterns)) {
greps = grepl(patterns[[i]], x[empty], ...)
ans[empty[greps]] = replacements[[i]]
empty = empty[!greps]
}
我正在以递归方式执行此操作以获取文件列表。对于每个文件,我需要在' sName'中匹配其名称。柱。如果文件名存在,则新的匹配'列读取1(否则为零)。
file.names <- dir(path, pattern =".csv")
for(i in 1:length(file.names)){
foo<-read.csv(file.names[i], header = T, sep = ",")
foo<-data.frame(foo)
fname<-gsub(".csv", "",file.names)
foo$match<-ff(foo$sName, c("fname[j]"),
c("1"), "0", ignore.case = TRUE)
}
匹配没有完成,你能帮帮我吗?