保留 R 中字符向量的第一个和最后一个元素

Keep first and last element from a character vector in R

我有一个如下所示的字符向量,我只想要该向量中每个值的第一个和最后一个字母,它们应该用破折号 (-) 分隔。

df <- c("bcdefg", "abc", "bcdefg", "abcd", "abcdefg", "abc", "a")

结果应该是这样的

[1] "b-g"  "a-c"   "b-g"  "a-d"    "a-g"    "a-c"     "a"

R 程序中执行此操作的任何代码。非常感谢您的帮助。

使用两个捕获组的 sub 基础 R 选项。

df <- c("bcdefg", "abc", "bcdefg", "abcd", "abcdefg", "abc", "a")

sub('^(.).*(.)$', '\1-\2', df)
#[1] "b-g" "a-c" "b-g" "a-d" "a-g" "a-c" "a"  

^表示字符串的开头,$表示字符串的结尾。