У меня есть dataframe столбцов символов имени new_sgs, который выглядит следующим образом:Заменить подстроку в одном столбце dataframe со значением другого столбца в одном ряду
SG.Name RegionCode
1 AW02PASGA001 01
2 AW02PASGA002 01
3 AW02PASGA003 01
4 AW02PASGA004 01
5 AW02PASGA005 01
6 AW02PASGA006 01
...
Я хочу заменить «02» в строках столбца 1 со строкой в столбце2. Это делает работу для ряда 1:
new_sgs$SG.Name[1] <- gsub("AW02", paste0("AW", new_sgs$RegionCode[1]), new_sgs$SG.Name[1])
Есть ли способ сделать это изменение в каждую строку, используя одну из функций применяются? Я попытался
sapply(new_sgs, function(x) gsub("AW02", paste0("AW", new_sgs$RegionCode[x]), new_sgs$SG.Name[x]))
, но это то, что я получаю:
SG.Name RegionCode
[1,] NA NA
[2,] NA NA
[3,] NA NA
[4,] NA NA
[5,] NA NA
[6,] NA NA
...
Warning messages:
1: In gsub("AW02", paste0("AW", test$RegionCode[x]), test$SG.Name[x]) :
argument 'replacement' has length > 1 and only the first element will be used
2: In gsub("AW02", paste0("AW", test$RegionCode[x]), test$SG.Name[x]) :
argument 'replacement' has length > 1 and only the first element will be used
Спасибо!
Люк
Возможной Дубликат [R: GSUB, шаблон = вектор и вектор замены =] (http://stackoverflow.com/questions/19424709/r-gsub-pattern-vector-and-replacement -vector) – aosmith