r 获取向量中每个单词的第一个、前两个、前三个字母的列表
r get list of first, first two, first three letters of each word in a vector
我想将向量的每个元素转换为它们的第一个、前两个等字母,然后再次收到一个包含结果的向量:
示例:
vector2 <- c("nike", "adidas")
结果:
> term2
[1] "n" "ni" "nik" "nike" "a" "ad" "adi" "adid" "adida" "adidas"
这仅适用于耐克:
vector1 <- c("nike")
n <- nchar(vector1)
for(i in 1:n)
{
term2[i] = substr(vector1, 1,i)
}
但是
vector2 <- c("nike", "adidas")
这是一种在 base R 中使用 mapply
和 sapply
的方法 -
v <- c("nike", "adidas")
unlist(
mapply(function(x, y) {
sapply(1:y, function(a) substr(x, 1, a))
}, v, nchar(v))
)
nike1 nike2 nike3 nike4 adidas1 adidas2 adidas3 adidas4 adidas5 adidas6
"n" "ni" "nik" "nike" "a" "ad" "adi" "adid" "adida" "adidas"
substring(rep(vector2, nchar(vector2)), 1, sequence(nchar(vector2)))
# [1] "n" "ni" "nik" "nike" "a" "ad" "adi" "adid" "adida"
#[10] "adidas"
我想将向量的每个元素转换为它们的第一个、前两个等字母,然后再次收到一个包含结果的向量:
示例:
vector2 <- c("nike", "adidas")
结果:
> term2
[1] "n" "ni" "nik" "nike" "a" "ad" "adi" "adid" "adida" "adidas"
这仅适用于耐克:
vector1 <- c("nike")
n <- nchar(vector1)
for(i in 1:n)
{
term2[i] = substr(vector1, 1,i)
}
但是
vector2 <- c("nike", "adidas")
这是一种在 base R 中使用 mapply
和 sapply
的方法 -
v <- c("nike", "adidas")
unlist(
mapply(function(x, y) {
sapply(1:y, function(a) substr(x, 1, a))
}, v, nchar(v))
)
nike1 nike2 nike3 nike4 adidas1 adidas2 adidas3 adidas4 adidas5 adidas6
"n" "ni" "nik" "nike" "a" "ad" "adi" "adid" "adida" "adidas"
substring(rep(vector2, nchar(vector2)), 1, sequence(nchar(vector2)))
# [1] "n" "ni" "nik" "nike" "a" "ad" "adi" "adid" "adida"
#[10] "adidas"