我有一个dataframe,我想提取每个城市的温度值。例如,如果我有一个字符串表示"NYC experienced a temperature of 35.5 degrees centigrade"如何提取35.5?
"NYC experienced a temperature of 35.5 degrees centigrade"
35.5
q3aa05251#
import re string = "NYC experienced a temperature of 35.5 degrees centigrade" pattern = r"\d+\.\d+" temperature = re.search(pattern, string) print(temperature.group())
应打印:
eufgjt7s2#
library(stringr) string <- "NYC experienced a temperature of 35.5 degrees centigrade" pattern <- "\\d+\\.\\d+" temperature <- str_extract(string, pattern) print(temperature) [1] "35.5"
8xiog9wr3#
假设输入字符串是s,它将每个单词读入单独的data.frame列,然后使用Filter提取数字列,最后将data.frame结果转换为标量。不使用正则表达式或包。
s
Filter
Filter(is.numeric, read.table(text = s))[[1]] ## [1] 35.5
或者相当于这个管道
s |> read.table(text = _) |> Filter(f = is.numeric) |> as.numeric() ## [1] 35.5
如果我们有一个字符串向量ss,那么
ss
ss <- c(s, s) # test data f <- function(x) Filter(is.numeric, read.table(text = x))[[1]] sapply(ss, f, USE.NAMES = FALSE) ## [1] 35.5 35.5
3条答案
按热度按时间q3aa05251#
应打印:
eufgjt7s2#
8xiog9wr3#
假设输入字符串是
s
,它将每个单词读入单独的data.frame列,然后使用Filter
提取数字列,最后将data.frame结果转换为标量。不使用正则表达式或包。或者相当于这个管道
如果我们有一个字符串向量
ss
,那么