Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 时间转换为数字_R_Regex_String_Time_Numeric - Fatal编程技术网

R 时间转换为数字

R 时间转换为数字,r,regex,string,time,numeric,R,Regex,String,Time,Numeric,有一个带有时间值的向量。如何删除冒号并将文本值转换为数值。i、 e.从“10:01:02”-字符到100102-数字。我所能找到的都在下面 > x <- c("10:01:02", "11:01:02") > strsplit(x, split = ":") [[1]] [1] "10" "01" "02" [[2]] [1] "11" "01" "02" >x strsplit(x,split=“:”) [[1]] [1] "10" "01" "02" [[2]] [

有一个带有时间值的向量。如何删除冒号并将文本值转换为数值。i、 e.从“10:01:02”-字符到100102-数字。我所能找到的都在下面

> x <- c("10:01:02", "11:01:02")  
> strsplit(x, split = ":")
[[1]]
[1] "10" "01" "02"

[[2]]
[1] "11" "01" "02"
>x strsplit(x,split=“:”)
[[1]]
[1] "10" "01" "02"
[[2]]
[1] "11" "01" "02"
尝试使用

x <- as.numeric(x)

我们可以使用
gsub
替换为
”。然后,使用
as.numeric
进行转换

x <- as.numeric(gsub(":", "", x, fixed = TRUE))

x如果要在一行中完成所有操作,可以使用
taRifx
中的
destring()
函数删除所有不是数字的内容,并将结果转换为数字

taRifx::destring(x)
如果某些数据以不同的方式格式化,例如
“10-01-02”
,这也会起作用,不过您可能需要设置
保留的值

destring("10-10-10", keep = "0-9")
如果您不想安装
taRifx
软件包,可以在本地定义
destring()
函数

destring <- function(x, keep = "0-9.-") 
{
    return(as.numeric(gsub(paste("[^", keep, "]+", sep = ""), 
        "", x)))
}

销毁此命令将导致
NA
>x或
as.numeric(gsub('\\D+',''',x))
如果您愿意,请将其包含在您的答案中like@Andrew谢谢你的回答。但对我来说,理解和理解的简单性很重要。你的答案对我来说很难。你有没有考虑过用虚拟日期将时间转换成POSIXct。?POSIXct本质上是一个数字,但在处理后续操作(如时差或绘图)时效果更好。
destring("10-10-10", keep = "0-9")
destring <- function(x, keep = "0-9.-") 
{
    return(as.numeric(gsub(paste("[^", keep, "]+", sep = ""), 
        "", x)))
}