我有多个这样的文件: 只有第一行是相关的。 我需要用 VAI_TEST_TEMP 替换 VAI_TEST。 结果应该是这样的: 我发现了多个匹配 VAI_TEST 的正则表达式模式,例如 (?:CREATE TABLE )([A-Za-z_]*)[\\r\\n] (?:.* TABL ...
提示:本站收集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 作为后缀。 提前谢谢你
我们使用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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.