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

时间:2018-04-09 15:57:12

标签: r dplyr substr

我有一个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)))

错误消息:

  

mutate_impl(.data,dots)中的错误:评估错误:&#39; nchar()&#39;   需要一个字符向量。

我也试过这个:

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

1 个答案:

答案 0 :(得分:2)

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

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