【发布时间】:2022-01-20 14:51:39
【问题描述】:
我有一个字符向量,其中字符串元素有或没有斜杠(/)。
sem_tags <- ('F2', 'A1/B1', 'X3.2', 'M3fn', 'E2/Q2')
我希望将那些带有斜杠的标签存储为两个单独的标签,以便最终得到
new_sem_tags <- ('F2', 'A1', 'B1', 'X3.2', 'M3fn', 'E2', 'Q2')
这是我目前尝试过的。
new_sem_tags <- c()
for (i in 1:length(sem_tags)){
if (grepl("/", i)){
append(new_sem_tags, str_split(i, '/'))
} else {
appendnew_sem_tags, i)
}
i = i+1
}
很遗憾,这不起作用。当我分别尝试每个功能时,例如,拆分和附加它们似乎完成了这项工作。但是,我注意到附加会返回输出,但不会“存储”输出。这可能是问题吗?如果是,我该如何克服?
提前致谢!
【问题讨论】:
-
在 R 中,除非您使用
<-或=分配结果,否则几乎不会存储/修改内容。如果您以x <- 5开头,x+1将打印 6 但不会更改x——如果您想更改x,则需要x <- x + 1。同样append(x, 10)将打印5 10,但如果你想修改x你需要x <- append(x, 10)。在您的情况下,您可以使用new_sem_tags <- append(new_sum_tags, ...)(尽管 lovalery 的解决方案更清洁)。 -
@GregorThomas 感谢您的评论!我也尝试过,但它给了我一个奇怪的结果。我得到了一个整数向量
(1, 2, 3, 4, 5 ... ),它达到了sem_tags向量的长度。