【发布时间】:2021-11-21 15:33:08
【问题描述】:
在我正在使用的数据框中,我有一个名为“天气”的列,其中包含如下所示的天气数据:
Sunny Temp: 78� F, Humidity: 63%, Wind: SSW 6 mph
Sunny Temp: 103� F, Humidity: 7%, Wind: 16 SW mph
Temp: 88� F, Humidity: 43%, Wind: S 12 mph
Cloudy Temp: 81� F, Humidity: 90%, Wind: SW 5 mph
我想使用 dplyr 的 mutate 函数为包含在“天气”列中的温度和风速创建新列。对于温度列,我正在考虑一个查看“Temp:”之后的前 3 个字符并提取任何数字的函数应该可以工作。如您所见,对于风,有时风向位于数字之前。因此,与温度列类似的功能,但可能会查看前 6-7 个字符并提取任何数字。
我已经阅读了 sub、gsub、substr 和 str_extract 并尝试针对我的特定困境实施其中的每一个。我只是无法选择我上面描述的特定字符串。例如我试过:
mutate(temperature = sub('.*Temp: ', '',weather)) %>%
mutate(temperature = substr(temp, 1, 2))
但当温度为 1 或 3 位数时,这不起作用。
非常感谢任何帮助!
【问题讨论】: