select 行(按时间戳的元素组成部分)
select rows by element components of timestamp
我有一个由时间戳组成的矢量 POSIXlt
,格式:“2015-01-05 15:00:00,我从时间范围中提取出来。
我想通过丢失 Minutes != 00
中的所有元素来重新分配矢量
我试过了
vector <- vector[format(vector, "%M") == 00,]
这会导致以下缺少参数的错误
Error in lapply(X = x, FUN = "[", ..., drop = drop) :
argument is missing, with no default
也试过
vector <- vector["%M""== 00]
这似乎是一个开放命令
由于 POSIX 时间存储为自 1970 年 1 月 1 日以来经过的秒数,我想我可以通过从向量中排除所有不是 3600 的倍数的元素来做到这一点。我宁愿不使用它虽然方法。提前谢谢你,我是 R
的新手。
你可以试试
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')
格式化 returns 字符类型,而不是数字,因此您应该将其与“00”进行比较。也不需要逗号,因为只有 1 个维度。
vector <- vector[format(vector, "%M") == "00"]
使用:
vector2 <- vector2[v2$min==0]
我重新分配向量 2 (v2),排除分钟不为 0 的所有元素。
这是@akrun 提出的。
它在保持数据类型为 POSIX.
的同时进行选择
初始代码的第一个选项有两个问题:
1.function 格式() returns 字符;
2.there 是最后一个“]”之前的“,”,这意味着该函数需要另一个参数,这对向量没有意义,正如@balint 所解释的那样。
最初提交的第二个选项存在一些语法错误。正确的语法是在这个答案上,正如@akron 所建议的那样。
我有一个由时间戳组成的矢量 POSIXlt
,格式:“2015-01-05 15:00:00,我从时间范围中提取出来。
我想通过丢失 Minutes != 00
我试过了
vector <- vector[format(vector, "%M") == 00,]
这会导致以下缺少参数的错误
Error in lapply(X = x, FUN = "[", ..., drop = drop) : argument is missing, with no default
也试过
vector <- vector["%M""== 00]
这似乎是一个开放命令
由于 POSIX 时间存储为自 1970 年 1 月 1 日以来经过的秒数,我想我可以通过从向量中排除所有不是 3600 的倍数的元素来做到这一点。我宁愿不使用它虽然方法。提前谢谢你,我是 R
的新手。
你可以试试
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')
格式化 returns 字符类型,而不是数字,因此您应该将其与“00”进行比较。也不需要逗号,因为只有 1 个维度。
vector <- vector[format(vector, "%M") == "00"]
使用:
vector2 <- vector2[v2$min==0]
我重新分配向量 2 (v2),排除分钟不为 0 的所有元素。 这是@akrun 提出的。 它在保持数据类型为 POSIX.
的同时进行选择初始代码的第一个选项有两个问题:
1.function 格式() returns 字符;
2.there 是最后一个“]”之前的“,”,这意味着该函数需要另一个参数,这对向量没有意义,正如@balint 所解释的那样。
最初提交的第二个选项存在一些语法错误。正确的语法是在这个答案上,正如@akron 所建议的那样。