我正在使用Rrd软件包进行R,我正在导入rrd文件,并且希望删除所有具有NaN的记录。尝试删除NaN时出错
head(rra)
timestamp curr_proc_units entitled_cycles capped_cycles
1480982460 2016-12-05 18:01:00 NaN NaN NaN
1480982520 2016-12-05 18:02:00 NaN NaN NaN
1480982580 2016-12-05 18:03:00 NaN NaN NaN
1480982640 2016-12-05 18:04:00 NaN NaN NaN
1480982700 2016-12-05 18:05:00 NaN NaN NaN
1480982760 2016-12-05 18:06:00 NaN NaN NaN
uncapped_cycles
1480982460 NaN
1480982520 NaN
1480982580 NaN
1480982640 NaN
1480982700 NaN
1480982760 NaN
头部都是NaN,但其余的都不是。
#!/usr/bin/env Rscript
# libraries
library(lubridate, quietly = TRUE)
library(plyr, quietly = TRUE)
library(dplyr, quietly = TRUE)
library(chron, quietly = TRUE)
library(ggplot2, quietly = TRUE)
library(Rrd, quietly = TRUE)
library(plyrmr, quietly = TRUE)
rra = importRRD("/kathryn/rdc1vsip8/rdc1vsiphmc3/rdc1vpc1lpr56.rrm", "AVERAGE", 1480982400, 1486598400, 2)
rra$timestamp <- as.POSIXct(as.numeric(rra$timestamp), origin = "1970-01-01")
rra = rra[!is.nan(rra)];
我的错误是:错误is.nan(RRA):为类型“列表”
因此,如何将我的列表到的东西,我可以拿出NaN值不执行默认方法?
我假设你想要将某些列传递给is.nan。如果有一列可以用来识别nan案例,那么你可以将is.nan(rra)改为is.nan(rra $ yourcolumn),但是你可能想要使用行索引,所以它应该看起来像' rra <!rra [!is.nan(rra $ yourcolumn),]'(注意逗号) – Dason
这是除时间戳之外的所有列。这可能吗? –
你可以像apply(rra [, - 1],1,function(x){any(is.nan(x))})来获取包含nan值的行的索引。 “-1”告诉它在将函数应用到每一行时排除第一列(它是时间戳)。 – Dason