我有一个婴儿姓名文件,我正在阅读该文件,然后尝试获取婴儿姓名中的最后一个字符。例如,文件看起来像..
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
方法来工作,你可以使用tail
与 sapply
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/