我有一个由时间戳组成的矢量POSIXlt
,格式:" 2015-01-05 15:00:00,我是从时间帧中提取的。
我想通过丢失Minutes != 00
我已经尝试了
vector <- vector[format(vector, "%M") == 00,]
会产生以下错误参数
lapply错误(X = x,FUN =&#34; [&#34;,...,drop = drop): 参数缺失,没有默认值
也试过
vector <- vector["%M""== 00]
这似乎是一个开放的命令
由于POSIX时间存储为自1970年1月1日以来经过的秒数,我想我可以通过从我的向量中排除所有不是3600的倍数的元素来做到这一点。我宁愿不使用这种方法。提前谢谢,我是R
的新手。
答案 0 :(得分:1)
你可以尝试
v2[!v2$min]
#[1] "2015-01-05 15:00:00 EST" "2015-01-05 15:00:30 EST"
或者您的命令也可以在没有comma
v1 <- c("2015-01-05 15:00:00", "2015-01-05 15:45:00", "2015-01-05 15:00:30")
v2 <- strptime(v1, '%Y-%m-%d %H:%M:%S')
答案 1 :(得分:1)
格式返回字符类型,而不是数字,因此您应将其与“00”进行比较。此外,不需要逗号,因为只有一个维度。
vector <- vector[format(vector, "%M") == "00"]
答案 2 :(得分:0)
使用:
vector2 <- vector2[v2$min==0]
我重新分配向量2(v2),不包括分钟不为0的所有元素。 这是由@akrun提出的。 它将数据类型保持为POSIX进行选择。
初始代码的第一个选项存在两个问题:
1.function format()返回字符;
2.有一个&#34;,&#34;在最后&#34;]&#34;之前,这意味着该函数期待另一个参数,这对于@balint所解释的向量没有意义。
最初提交的第二个选项存在一些语法错误。正如@akron所建议的那样,正确的语法就是这个答案。