基于另一列在R语言中移除字符串的指定部分
按指定数量移除字符串前导字符的tidyverse解决方案
嘿,这事儿用tidyverse的工具轻松就能搞定!咱们直接一步步来:
首先是你给出的原始数据集:
library(tidyverse) df <- tibble(fruits=c("apple","banana","ananas"), remove_strings=c(1,4,2)) df
输出结果:
A tibble: 3 × 2fruits remove_strings
1 apple 1
2 banana 4
3 ananas 2
接下来,我们用mutate()配合str_sub()函数生成目标的new_fruits列。str_sub()能精准截取字符串,这里把起始位置设为remove_strings + 1,相当于跳过前N个字符,直接从第N+1位开始截取到字符串末尾:
df <- df %>% mutate(new_fruits = str_sub(fruits, start = remove_strings + 1)) df
运行后就能得到你想要的结果:
A tibble: 3 × 3fruits remove_strings new_fruits
1 apple 1 pple
2 banana 4 na
3 ananas 2 anas
简单说下逻辑:
str_sub(fruits, start = remove_strings + 1):针对每一行的fruits字符串,从remove_strings指定数字加1的位置开始截取,直到字符串结束,正好实现了移除前N个字符的需求。
内容的提问来源于stack exchange,提问作者LDT
相关产品推荐
相关产品推荐

