regex - 使用 strsplit 获取 r 中的最后一个字符

标签 regex r string parsing strsplit

我有一个婴儿姓名文件,我正在阅读该文件,然后尝试获取婴儿姓名中的最后一个字符。例如,文件看起来像..

Name      Sex 
Anna      F
Michael   M
David     M
Sarah     F

我在使用中读到了这个
sourcenames = read.csv("babynames.txt", header=F, sep=",")

我最终希望我的结果看起来像..
Name   Last Initial   Sex
Michael  l             M
Sarah    h             F

我设法将名称拆分为单独的字符..
sourceout = strsplit(as.character(sourcenames$Name),'')

但是现在我遇到的问题是如何获得最后一个字母,所以在 Michael 的情况下,如何获得“l”。我认为 tail() 可能有效,但它返回最后几条记录,而不是每个 Name 元素中的最后一个字符。

非常感谢任何帮助或建议。

谢谢 :)

最佳答案

为您 strsplit方法来工作,你可以使用tailsapply

df$LastInit <- sapply(strsplit(as.character(df$Name), ""), tail, 1)
df
#      Name Sex LastInit
# 1    Anna   F        a
# 2 Michael   M        l
# 3   David   M        d
# 4   Sarah   F        h

或者,您可以使用 substring
with(df, substring(Name, nchar(Name)))
# [1] "a" "l" "d" "h"

关于regex - 使用 strsplit 获取 r 中的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26413642/

相关文章:

python - 使用常规exp。在Python中

c# - MatchCollection 可以在尝试迭代时挂起程序吗?

r - 使用 abline 将线性回归线添加到散点图中的每组点时出现编码错误

r - R-Librarys 中 MD5 哈希的差异 - 序列化对象的 MD5

java - 如何使用 java 将数字点 (.) 替换为逗号 (,)

java - fatal error : Invalid Layout of java. lang.String 在值

java - 如何将一个字符串数组拆分为多个字符串?

欧元符号 (€) 的正则表达式

Python正则表达式从字符串中提取版本

r - 设置公式中定义的变量名称