从 r 中的字符列中提取最后 n 个字符

extracting last n characters from a character column in r

我有一个 data.frame(比方说 x)和一个 character 列。我正在尝试从该列中提取最后 n(比方说 3)个字符,并在同一 data.frame 中创建一个新列。我正在尝试这样做:

library(dplyr)
x <- x %>% mutate(new_col=substr(old_col, nchar(old_col)-3+1, nchar(old_col)))

错误信息:

Error in mutate_impl(.data, dots) : Evaluation error: 'nchar()' requires a character vector.

我也试过这个:

x <- x %>% mutate(new_col=substr(x$old_col, nchar(x$old_col)-3+1, nchar(x$old_col)))

nchar 中使用 as.character 或在创建 data.frame 时使用 stringsAsFactors = F

library(magrittr)
df <- data.frame(A = c("Blue", "Orange", "Black"), stringsAsFactors = F)
df %<>% mutate(B = substr(A, nchar(A)-3+1, nchar(A)))
df

       A   B
1   Blue lue
2 Orange nge
3  Black ack