Я хочу заменить первый элемент строк в x пустым, если он удовлетворяет условию: если первый элемент из «101» в x соответствует первой строке в y , замените первый элемент «101» на пустой.Заменить первый элемент строки в R на основании условия
x = c("101", "201", "301")
y = c("1", "7", "3")
Want:
> x
[1] "01" "201" "01"
Я пытался:
> ifelse(substr(x, 1, 1) == y, sub(substr(x, 1, 1), ""), x)
Я знаю, что это неправильно, хотя не intuitively- sub
нужен образец в качестве первого аргумента и не будет принимать substr
.
попытался также:
> ifelse(substr(x, 1, 1) == y, substr(x, 1, 1) <- "", x)
[1] "" "201" ""
Я передал этот R: How can I replace let's say the 5th element within a string? и решить ее с помощью:
ifelse(substr(x, 1, 1) == y, paste(substr(x, 2, nchar(x))), x)
интересно, если есть лучший способ сделать это?
Хороший трюк с добавлением булево значение 'от' параметра! –