Р применять функцию колодки пространства, чтобы соответствовать длинам характер

Я использую применяются для создания строк из фрейма данных.

Например:

df2 <- data.frame(a=c(1:3), b=c(9:11))apply(df2, 1, function(row) paste0("hello", row['a']))apply(df2, 1, function(row) paste0("hello", row['b']))

работает, как я ожидаю, и создает

[1] "hello1" "hello2" "hello3"[1] "hello9" "hello10" "hello11"

Однако, если я

df <- data.frame(a=c(1:3), b=c(9:11), c=c("1", "2", "3"))apply(df, 1, function(row) paste0("hello", row['a']))apply(df, 1, function(row) paste0("hello", row['b']))

выход

[1] "hello1" "hello2" "hello3"[1] "hello 9" "hello10" "hello11"

Может ли один объясните, пожалуйста, почему я получаю мягкий место, чтобы сделать все строки одинаковой длины во втором случае? Я могу обойти эту проблему с помощью gsub, но я бы хотел лучше понять, почему это происходит