gpt4 book ai didi

r - 提取特定值后的字符串

转载 作者:行者123 更新时间:2023-12-02 09:06:08 26 4
gpt4 key购买 nike

我有一个包含字符串的数据框。有没有办法在特定值之后提取字符串。例如。

df

Col
2017-09-19.I.L_WAY
2017-09-19.I.L_TEMP

有没有办法提取

df1

Col Col1 Col2
2017-09-19.I.L_WAY 2017-09-19 I.L_WAY
2017-09-19.I.L_TEMP 2017-09-19 I.L_TEMP

最佳答案

1) 单独 使用df 在最后使用separate 处的注释中重复显示:

library(dplyr)
library(tidyr)

df %>%
separate(Col, c("Col1", "Col2"), sep = "\\.", extra = "merge", remove = FALSE)

给予:

                  Col       Col1     Col2
1 2017-09-19.I.L_WAY 2017-09-19 I.L_WAY
2 2017-09-19.I.L_TEMP 2017-09-19 I.L_TEMP

2) as.Date/sub 这将创建一个 Date 类列 Col1 和一个字符类列 Col2 > 不使用任何软件包。

transform(df, Col1 = as.Date(Col), Col2 = sub("[^.]+\\.", "", Col),
stringsAsFactors = FALSE)

给予:

                  Col       Col1     Col2
1 2017-09-19.I.L_WAY 2017-09-19 I.L_WAY
2 2017-09-19.I.L_TEMP 2017-09-19 I.L_TEMP

3) read.table 这是另一个基本的 R 替代方案。用分号替换第一个点,读取它 df$Col 假设分号分隔字段并使用 df 进行 cbind:

cbind(df, read.table(text = sub("\\.", ";", df$Col), sep = ";", as.is = TRUE,
col.names = c("Col1", "Col2")))

给予:

                  Col       Col1     Col2
1 2017-09-19.I.L_WAY 2017-09-19 I.L_WAY
2 2017-09-19.I.L_TEMP 2017-09-19 I.L_TEMP

注意

Lines <- "Col
2017-09-19.I.L_WAY
2017-09-19.I.L_TEMP"
df <- read.table(text = Lines, header = TRUE, as.is = TRUE)

关于r - 提取特定值后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58306088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com