如何从R中的列中的每一行中删除前三个字符

Sha*_*awn 4 r edit subtraction gsub dataframe

我有一个包含一列文本、20K 行的大型数据集。想要删除该特定列中每行开头的第一个 x 个字符(例如 3 个)。感谢您的帮助。

Ist*_*rel 9

您可以使用gsub函数和简单的正则表达式来完成。这是代码:

# Fake data frame
df <- data.frame(text_col = c("abcd", "abcde", "abcdef"))
df$text_col <- as.character(df$text_col)

# Replace first 3 chracters with empty string ""
df$text_col <- gsub("^.{0,3}", "", df$text_col)
Run Code Online (Sandbox Code Playgroud)


Cal*_*You 5

通过直接指定起点和终点,tidyverse我们可以使用str_sub(以及一些示例文本字符串)来执行此操作:fruit

\n\n\n\n
library(tidyverse)\ntbl <- tibble(some_fruit = fruit)\ntbl\n#> # A tibble: 80 x 1\n#>    some_fruit  \n#>    <chr>       \n#>  1 apple       \n#>  2 apricot     \n#>  3 avocado     \n#>  4 banana      \n#>  5 bell pepper \n#>  6 bilberry    \n#>  7 blackberry  \n#>  8 blackcurrant\n#>  9 blood orange\n#> 10 blueberry   \n#> # \xe2\x80\xa6 with 70 more rows\ntbl %>%\n  mutate(chopped_fruit = str_sub(fruit, 4, -1))\n#> # A tibble: 80 x 2\n#>    some_fruit   chopped_fruit\n#>    <chr>        <chr>        \n#>  1 apple        le           \n#>  2 apricot      icot         \n#>  3 avocado      cado         \n#>  4 banana       ana          \n#>  5 bell pepper  l pepper     \n#>  6 bilberry     berry        \n#>  7 blackberry   ckberry      \n#>  8 blackcurrant ckcurrant    \n#>  9 blood orange od orange    \n#> 10 blueberry    eberry       \n#> # \xe2\x80\xa6 with 70 more rows\n
Run Code Online (Sandbox Code Playgroud)\n\n

由reprex 包(v0.2.1)于 2019-02-22 创建

\n