小编Hen*_*olm的帖子

选择以正则表达式中第一个字符实例结尾的字符串

假设我有以下字符串:

pos/S881.LMG1810.QE009562.mzML
Run Code Online (Sandbox Code Playgroud)

并希望选择该字符串的开头:

pos/S881.
Run Code Online (Sandbox Code Playgroud)

我可以使用以下正则表达式来获取字符串的开头 (^),然后是任何字符 (.)、任意次数 (*),以小数点 (\.) 结尾

^.*\.
Run Code Online (Sandbox Code Playgroud)

然而,这在字符串中的最后一个小数处终止,因此给了我:

pos/S881.LMG1810.QE009562.
Run Code Online (Sandbox Code Playgroud)

如何在第一个小数点处终止选择?

regex r stringr

7
推荐指数
2
解决办法
328
查看次数

对向量中值的实例进行编号的最快方法

我希望对向量中出现的值的每个实例进行编号。例如,某个值的第一个实例将获取“1”,第二个实例将获取“2”,依此类推 - 计算该值在向量中之前出现的次数。EuStockMarkets我可以使用 R中的 for 循环使用datasets.

#load data
data <- as.data.frame(datasets::EuStockMarkets)
df <- data.frame(order = 1:nrow(data),value = data$DAX)
head(df)

#calculate number of instances 
start_time <- Sys.time()
for (i in 1:nrow(df)) {
 df[i,"instance"]<- sum(df[1:i,"value"] == df[i,"value"])
}
end_time <- Sys.time()
end_time - start_time
#Time difference of 0.1126978 secs
Run Code Online (Sandbox Code Playgroud)

这很好,但如果对于更大的数据集有更快的选项,并且想知道它们是否是一个预先存在的函数(也许带有 tidyverse 包),我宁愿不使用 for 循环。

r dataframe dplyr

1
推荐指数
2
解决办法
87
查看次数

标签 统计

r ×2

dataframe ×1

dplyr ×1

regex ×1

stringr ×1