1、在a.txt中每行匹配的最后一个e替换为xxx(每行都有e的情况)
dat <- read.table("a.txt", header = F) dat index <- data.frame() ## 创建数据框,储存匹配结果 for (i in 1:nrow(dat)) { count = 0 for (j in 1:ncol(dat)) { if (dat[i,j] == "e") { count = j ## 利用for双循环遍历,将每行最后匹配e的所有返回给count } } index <- rbind(index ,count) ## 储存count } index index <- cbind(rows = 1:nrow(index), index) ## 增加行号 for (i in 1:nrow(index)) { dat[index[i,1],index[i,2]] = "xxx" ## 利用匹配结果进行替换 } dat
2、不是每行都有e的情况
dat <- read.table("a.txt", header = F) dat index <- data.frame() for (i in 1:nrow(dat)) { count = 0 for (j in 1:ncol(dat)) { if (dat[i,j] == "e") { count = j } } index <- rbind(index ,count) } index index <- cbind(rows = 1:nrow(index), index) index <- index[index[,2] != 0,] ## 删除没有匹配e的行 for (i in 1:nrow(index)) { dat[index[i,1],index[i,2]] = "xxx" } dat