在列表中显示相邻成员
我想根据匹配项检查列表中的相邻元素。例如,在随机订购的字母列表中,我想知道m
的相邻字母是什么。我当前的解决方案是:
library(stringr)
ltrs <- sample(letters)
ltrs[(str_which(ltrs,'m')-2):(str_which(ltrs,'m')+2)]
[1] "j" "f" "m" "q" "a"
对我来说,str_which()
的重复感到不必要。是否有更简单的方法可以达到相同的结果?
I want to inspect adjacent elements in a list based on a match. For example, in a list of randomly ordered letters, I want to know what the neighboring letters of m
is. My current solution is:
library(stringr)
ltrs <- sample(letters)
ltrs[(str_which(ltrs,'m')-2):(str_which(ltrs,'m')+2)]
[1] "j" "f" "m" "q" "a"
To me, the repetition of str_which()
feels unnecessary. Is there a simpler way to achieve the same result?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,我用种子再生数据可重复性:
使用
-2:2
,然后(警告性地)删除矢量长度以下的那些:如果您的目标是一个以上(不是一个 以上)只是
“ m”
),然后我们可以使用其他方法。或者,如果您不在乎将它们分组,我们可以尝试以下操作:
First, I regenerate random data with a seed for reproducibility:
Use
-2:2
and then (cautionarily) remove those below 1 or above the length of the vector:If your target is more than one (not just
"m"
), then we can use a different approach.Or, if you don't care about keeping them grouped, we can try this:
如果您没有重复项,则可以像以下
那样尝试代码
If you don't have duplicates, you can try the code like below
otherwise
您还可以使用
slider :: slide
函数(使用 @r2evans提供的数据):You can also use the
slider::slide
function (using data provided by @r2evans):