如何根据向量的值更改 R 中 substr 函数的停止值?

问题描述

我构建了一种根据向量中字符串的长度来确定子字符串的停止值的方法:这个想法是将所有字符保留在第二个破折号之前。并非所有数据集的字符数都相同。

textLength <- which(strsplit(data$`N° échantillon`,"")[[1]] == "-")[2] - 1
data$`N° échantillon` <- substr(data$`N° échantillon`,1,textLength)

问题是某些数据集中的文本长度也可能有所不同,因此我需要为每个条目调整 textLength

我试过这样的事情

substr(data$`N° échantillon`,which(strsplit(data[,"N° échantillon"],"") == "-")[2] - 1)

但我当然得到错误

data[,"N° échantillon"] 不是字符链

有没有办法在substr函数执行过程中访问数据的位置?

如评论所问:

输入可以是

N°échantillon b c
001-001-某事 b c
001-002-某事 b c
999-999-某事 b c
001-0001-某事 b c

输出将是

N°échantillon b c
001-001 b c
001-002 b c
999-999 b c
001-0001 b c

但实际代码会在最后一行给出 001-000|b|c。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)