繁体   English   中英

根据行中的模式添加后缀

Add a suffix based on a pattern in rows

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个如下所示的 data.frame:

 names value1 Value2 S1_xxx-1 9.65 1.24 S1_xxx-1 1.15 3.64 S1_xxx-1 3.05 1.65 S2_xxx-1 7.12 6.109 S2_xxx-1 8.9 6.03 S2_xxx-1 4.23 2.10 ....... ...... ......

从 S1 到 S16 的 S* 和 _xxx- 是一些字母。 有没有办法在第一列上获得以下输出?

 names value1 Value2 S1_xxx-1-0 9.65 1.24 S1_xxx-1-0 1.15 3.64 S1_xxx-1-0 3.05 1.65 S2_xxx-1-1 7.12 6.109 S2_xxx-1-1 8.9 6.03 S2_xxx-1-1 4.23 2.10 ....... ...... ......

即当有 S1* 时,我想在所有具有 S1* 的行中添加 -0 作为后缀。 同样,当有 S2* 时,我想将 -1 作为后缀添加到所有具有 S2* 的行,依此类推,直到 S16* 将具有 -15 作为后缀。 提前谢谢你

1 个回复

我们使用parse_number提取数字,减去 1,然后paste “名称”

df1$names <- with(df1, paste0(names, '-', readr::parse_number(names) -1))

df1$names
#[1] "S1_xxx-1-0" "S1_xxx-1-0" "S1_xxx-1-0" "S2_xxx-1-1" "S2_xxx-1-1" "S2_xxx-1-1"

tidyverse类似选项

library(dplyr)
library(stringr)
df1 %>%
   mutate(names = str_c(names, readr::parse_number(names), sep = '-'))

数据

df1 <- structure(list(names = c("S1_xxx-1", "S1_xxx-1", "S1_xxx-1", 
"S2_xxx-1", "S2_xxx-1", "S2_xxx-1"), value1 = c(9.65, 1.15, 3.05, 
7.12, 8.9, 4.23), Value2 = c(1.24, 3.64, 1.65, 6.109, 6.03, 2.1
)), class = "data.frame", row.names = c(NA, -6L))
4 Python-在匹配的行中添加前缀和后缀

我在Python中有一个引擎,该引擎读取目录中的.txt文件,隔离以特定文本开头的行,按定义的分隔符将其拆分,将其内容与excel表进行比较,如果不匹配,则删除该行。 我想找到最简单,最快的方法来修改此代码,而不是删除行,添加特定的文本和前缀以及后缀作为其他文本。 我的代码: 有什么想法如何 ...

6 Notepad ++每5行添加一个后缀

我有一个文本文件,其中包含用户名列表(+100,000行),我想在每5行后添加一个后缀。 例: 我试图使用正则表达式搜索^(.+)$然后搜索\\1 suffixtext! 尝试失败。 它改变了所有的线条。 而我只需要每5行。 我还想在后缀后添加一个随机数。 谢谢, ...

8 在中添加后缀 PHP的

我想使用以下代码在输入滑块中添加货币后缀: 此代码输出价格范围滑块。 但这是行不通的,它应该在“ minprice”和“ maxprice”前面输出“ AED”。 如果我删除了'esc_html__('AED', 'service-finder').' ,那么它可以正常工作。请帮助 ...

9 在Java 8中添加后缀

我需要一个函数,该函数返回一个包含{XXX11, XXX12, XXX13, XXX14, XXX21, ... , XXX43, XXX44}其中XXX是函数的整数参数。 Java 8风格的优雅方式是什么? 如果前缀是一位,我已经做了如下操作: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM