Sha*_*awn 4 r edit subtraction gsub dataframe
我有一个包含一列文本、20K 行的大型数据集。想要删除该特定列中每行开头的第一个 x 个字符(例如 3 个)。感谢您的帮助。
您可以使用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)
通过直接指定起点和终点,tidyverse我们可以使用str_sub(以及一些示例文本字符串)来执行此操作:fruit
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\nRun Code Online (Sandbox Code Playgroud)\n\n由reprex 包(v0.2.1)于 2019-02-22 创建
\n| 归档时间: |
|
| 查看次数: |
8408 次 |
| 最近记录: |