是否有R函数等效于Python中的range?

布里斯班Pom

我想将字符串拆分为3个字符的ngram,例如HelloWorld会变成“ Hel”,“ ell”,“ llo”,“ loW”等如何使用R做到这一点

在Python中,它会使用范围函数进行循环-例如,[range(3)中i的[myString [i:]]

是否有一种巧妙的方法可以使用Stringr(另一个合适的函数/包)遍历字符串的字母以将单词分词为向量?

例如

dfWords <- c("HelloWorld", "GoodbyeMoon", "HolaSun") %>% data.frame() names(dfWords)[1] = "Text"

我想生成一个新列,其中将包含标记化Text变量的向量(最好使用dplyr)。然后可以将其拆分为新的列。

莫里斯·埃弗斯(Maurits Evers)

在基数R中,您可以执行以下操作

ss <- "HelloWorld"

len <- 3
lapply(seq_len(nchar(ss) - len + 1), function(x) substr(ss, x, x + len - 1))
#[[1]]
#[1] "Hel"
#
#[[2]]
#[1] "ell"
#
#[[3]]
#[1] "llo"
#
#[[4]]
#[1] "loW"
#
#[[5]]
#[1] "oWo"
#
#[[6]]
#[1] "Wor"
#
#[[7]]
#[1] "orl"
#
#[[8]]
#[1] "rld"

说明:该方法是一个基本的滑动窗口方法来提取substr从英格斯ss返回对象是list


另一个(滑动窗口)替代可以是zoo::rollapplystrsplit

library(zoo)
len <- 3
rollapply(unlist(strsplit(ss, "")), len, paste, collapse = "")
[1] "Hel" "ell" "llo" "loW" "oWo" "Wor" "orl" "rld"

为了回应您的评论/编辑,这里有一个tidyverse选项

# Sample data
df <- data.frame(words = c("HelloWorld", "GoodbyeMoon", "HolaSun"))

library(tidyverse)
library(zoo)
df %>% mutate(lst = map(str_split(words, ""), function(x) rollapply(x, len, paste, collapse = "")))
#        words                                         lst
#1  HelloWorld      Hel, ell, llo, loW, oWo, Wor, orl, rld
#2 GoodbyeMoon Goo, ood, odb, dby, bye, yeM, eMo, Moo, oon
#3     HolaSun                     Hol, ola, laS, aSu, Sun

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中是否有等效于R apply函数的函数?

R是否等效于Python函数“ dir”?

Python是否等效于R poly()函数?

C ++中是否有任何等效于python中字典的get函数的函数?

在C ++ / STL中是否有等效于Python range()的紧凑型

在C ++ / STL中是否有等效于Python range()的紧凑型

R是否等效于Python的'*'?

在Julia中是否有等效于matlab的rcond()函数?

C#中是否有等效于SQL NULLIF的函数?

是否有Rust等效于C ++中的clock函数?

R ggplot2 是否有等效于 Performance Analytics 包中的 chart.Correlation 函数?

R是否等效于python的字符串`format`函数?

是否等效于R中Excel的= PERCENTRANK.EXC函数?

在python / scipy,numpy,sympy中是否有等效于Mathematicas RootApproximant函数?

MATLAB是否等效于R函数rank()?

VBA中是否有等效于Python的pass语句?

Elixir中是否有等效于Python的dir()

Groovy 中是否有等效于 Python 产量的行为?

在C#中是否有等效于Python的ImportError

是否有等效于python中的any方法的方法

在Python中是否有等效于RStudio的“ .rs.askForPassword”?

Elixir中是否有等效于Python的defaultdict的代码?

JavaScript是否等效于Python的format()函数?

是否等效于Oracle中的cbind()函数?

是否有与R的sample()函数等效的Python?

Python等效于R interact()函数

R 中的 Mod() 函数等效于 MatLab?

在Python中,是否有C ++等效于声明一个函数并在使用后对其进行定义?

等效于PHP中Python的dir函数