我有矢量:
v <- c("godzilla", "jurassic", "googly")
Run Code Online (Sandbox Code Playgroud)
我想要这个向量中每个元素的前3个字母.我想最终得到:
# "god" "jur" "goo"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用apply,但它没有用.我该怎么办?
一种选择是substring():
> substring(v, first = 1, last = 3)
[1] "god" "jur" "goo"
Run Code Online (Sandbox Code Playgroud)
或者还有R版本, substr()
> substr(v, start = 1, stop = 3)
[1] "god" "jur" "goo"
Run Code Online (Sandbox Code Playgroud)
请注意所需的首字母和最后一个字符的不同名称.
由于这两个函数都是矢量化的,因此apply()这里不需要和朋友.
为了好玩,你可以在这里使用正则表达式:
sub('(^.{3}).*','\\1',v)
[1] "god" "jur" "goo"
Run Code Online (Sandbox Code Playgroud)
这是另一种矢量化解决方案.
| 归档时间: |
|
| 查看次数: |
8059 次 |
| 最近记录: |