根据 R 中的另一列删除字符串的一部分
Remove part of a string based on another column in R
我有一个看起来像这样的大型数据集。我想从 remove_strings 列指示的水果列中删除一定数量的字符串。
library(tidyverse)
df <- tibble(fruits=c("apple","banana","ananas"),
remove_strings=c(1,4,2))
df
#> # A tibble: 3 × 2
#> fruits remove_strings
#> <chr> <dbl>
#> 1 apple 1
#> 2 banana 4
#> 3 ananas 2
由 reprex package (v2.0.1)
创建于 2022-03-09
我想从 apple 中删除第一个字符串,从 banana 中删除前 4 个字符串,从 ananas 中删除前 2 个字符串。
我希望我的数据如下所示:
#> fruits remove_strings new_fruits
#> <chr> <dbl>
#> 1 apple 1 pple
#> 2 banana 4 na
#> 3 ananas 2 anas
使用substr
:
with(df, substr(fruits, remove_strings + 1, nchar(fruits)))
# [1] "pple" "na" "anas"
或者,使用 str_sub
:
library(stringr)
df %>%
mutate(removed = str_sub(fruits, remove_strings + 1))
# A tibble: 3 x 3
fruits remove_strings removed
<chr> <dbl> <chr>
1 apple 1 pple
2 banana 4 na
3 ananas 2 anas
substr(fruits, remove_strings+1, nchar(fruits))
(我想说我独立于 Maëls 解决方案解决了这个问题。我无法证明这一点,但这是我的任何帖子中第一次发生这种情况。)
df$new_fruits = substring(df$fruits, df$remove_strings + 1)
[1] "pple" "na" "ana
我有一个看起来像这样的大型数据集。我想从 remove_strings 列指示的水果列中删除一定数量的字符串。
library(tidyverse)
df <- tibble(fruits=c("apple","banana","ananas"),
remove_strings=c(1,4,2))
df
#> # A tibble: 3 × 2
#> fruits remove_strings
#> <chr> <dbl>
#> 1 apple 1
#> 2 banana 4
#> 3 ananas 2
由 reprex package (v2.0.1)
创建于 2022-03-09我想从 apple 中删除第一个字符串,从 banana 中删除前 4 个字符串,从 ananas 中删除前 2 个字符串。 我希望我的数据如下所示:
#> fruits remove_strings new_fruits
#> <chr> <dbl>
#> 1 apple 1 pple
#> 2 banana 4 na
#> 3 ananas 2 anas
使用substr
:
with(df, substr(fruits, remove_strings + 1, nchar(fruits)))
# [1] "pple" "na" "anas"
或者,使用 str_sub
:
library(stringr)
df %>%
mutate(removed = str_sub(fruits, remove_strings + 1))
# A tibble: 3 x 3
fruits remove_strings removed
<chr> <dbl> <chr>
1 apple 1 pple
2 banana 4 na
3 ananas 2 anas
substr(fruits, remove_strings+1, nchar(fruits))
(我想说我独立于 Maëls 解决方案解决了这个问题。我无法证明这一点,但这是我的任何帖子中第一次发生这种情况。)
df$new_fruits = substring(df$fruits, df$remove_strings + 1)
[1] "pple" "na" "ana