将符号(- 或 +)添加回 R 中的字符串向量

问题描述 投票:0回答:1

我有一个字符串

Vector
以及一组
index
值。
index
值有时可为负值或正值。

但是我们可以使用

Vector2 <- Vector[abs(index)]
从最初的
Vector
中提取我们想要的元素。

问题:是否可以在

-
的元素之间添加回来自
+
的符号(
index
Vector2
)来实现下面的
Desired_output

(注:这是一个玩具示例。

Vector
可以是任何大小或包含任何形状的字符元素,并且
index
可以是任何长度,当然小于
Vector
function
的所有答案是赞赏。)

Vector <- c("advanced baseline", "beginner baseline", "intermediate baseline", 
  "advanced post1", "beginner post1", "intermediate post1", "advanced post2", 
  "beginner post2", "intermediate post2")

index = c(8,-2,-7,1)

( Vector2 <- Vector[abs(index)] )

Desired_output <- "beginner post2 - beginner baseline - advanced post2 + advanced baseline"
r string function vector character
1个回答
1
投票

您可以使用

paste
将符号与向量元素合并。我猜你想保留第一个元素的减号而不是加号,以便用
gsub
将其删除。

add_signs <- function(vec, ind) {
  merged <- paste(ifelse(ind < 0, '-', '+'), 
                  vec[abs(ind)], 
                  collapse=' ')
  sub('^\\+ ', '', merged)
}

add_signs(Vector, index)
# [1] "beginner post2 - beginner baseline - advanced post2 + advanced baseline"
© www.soinside.com 2019 - 2024. All rights reserved.