在另一个向量的矢量子集

Tha*_*ame 3 r vector subset apply

说我有一个矢量

vector = c('hello','world')
Run Code Online (Sandbox Code Playgroud)

和另外两个矢量

vector2 = c(2,4)
vector3 = c(4,5)
Run Code Online (Sandbox Code Playgroud)

我如何通过其他两个向量创建第四个向量,它是第一个向量中每个元素的子集?就像是

vector[1][vector2[1]:vector3[1]]
Run Code Online (Sandbox Code Playgroud)

所以对于这些载体来说就是这样

vector4 = ('ell','ld')
Run Code Online (Sandbox Code Playgroud)

我试图使用sapply但遇到了障碍,因为我不确定如何编写函数来对它们进行子集化.

vector4 = sapply(vector, function(x) x[vector2:vector3])
Run Code Online (Sandbox Code Playgroud)

the*_*ail 5

这将涵盖substr/substring,将迭代每个输入:

substr(vector, vector2, vector3)
substring(vector, vector2, vector3)
#[1] "ell" "ld" 
Run Code Online (Sandbox Code Playgroud)

这两个功能略有不同.substring将扩展到更长的输入并回收:

substring(c("hello","nopes"), 1:3, 2:4)
#[1] "he" "op" "ll"
substr(c("hello","nopes"), 1:3, 2:4)
#[1] "he" "op"
Run Code Online (Sandbox Code Playgroud)

当您想从单个字符串中提取多个子字符串时,这可能特别有用:

substring("hello", 1:3, 2:4)
#[1] "he" "el" "ll"
substr("hello", 1:3, 2:4)
#[1] "he"
Run Code Online (Sandbox Code Playgroud)