我有DF
data.frame
。我想补充另一个column
(i.e., call it station_no)
在那里将extrac
t是number
后underscore
从Variables column
。
library(lubridate)
library(tidyverse)
set.seed(123)
DF <- data.frame(Date = seq(as.Date("1979-01-01"), to = as.Date("1979-12-31"), by = "day"),
Grid_2 = runif(365,1,10), Grid_20 = runif(365,5,15)) %>%
pivot_longer(-Date, names_to = "Variables", values_to = "Values")
所需输出:
DF_out <- data.frame(Date = c("1979-01-01","1979-01-01"),Variables = c("Grid_2","Grid_20"),
Values = c(0.95,1.3), Station_no = c(2,20))
简单的选项是parse_number
返回数字转换值
library(dplyr)
DF %>%
mutate(Station_no = readr::parse_number(Variables))
或使用str_extract
(以防万一我们想按模式进行操作)
library(stringr)
DF %>%
mutate(Station_no = str_extract(Variables, "(?<=_)\\d+"))
或使用 base R
DF$Station_no <- trimws(DF$Variables, whitespace = '\\D+')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句