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