省略R中的某些数据以保持总体数据完整性

省略R中的某些数据以保持总体数据完整性,r,iteration,nan,R,Iteration,Nan,我有一个函数,它在一列矩阵中为100个不同的数据帧返回50个数据值。但是,由于环境原因,有时该函数会在数据帧中50个值中的一个或多个值中返回“NaN”。这会干扰数据,因为具有一个或多个NaN的数据帧现在被视为具有49或48列 df1 df2 112.4563 112.4563 110.1210 110.1210 109.2143 109.2143 NaN 108.1806 <

我有一个函数,它在一列矩阵中为100个不同的数据帧返回50个数据值。但是,由于环境原因,有时该函数会在数据帧中50个值中的一个或多个值中返回“NaN”。这会干扰数据,因为具有一个或多个NaN的数据帧现在被视为具有49或48列

          df1        df2
         112.4563 112.4563
         110.1210 110.1210
         109.2143 109.2143
         NaN      108.1806 <- now uneven and can not perform iterations
         107.3700 107.3700
df1-df2
112.4563 112.4563
110.1210 110.1210
109.2143 109.2143

NaN 108.1806正如其他人所指出的,它也可以取决于您想要对NaN值做什么。但是,在回答交互范围时,您可以执行以下操作。我将以dataframe mtcars为例

df = mtcars
length(df$mpg)
length(rownames(df))
length(colnames(df))
如果需要迭代数据帧中的总行数,可以使用length(rownames(df))。如果需要迭代列数,可以使用length(colnames(df))

在for循环中,您将执行以下操作:

for (i in length(rownames(df)){
# iterative code
}

这将迭代给定数据帧中的总行数。

您希望后续命令如何“忽略”/“处理”一个
NaN
值?
NaN
类型的要点是,它代表一些不寻常的东西(“不是数字”),您必须确定如何处理它。您尚未指定如何处理它。很抱歉,我的意思是,我只是希望代码“忽略/跳过”为NaN的数据-这不会改变列中的行数。。。比如if命令:if(i=NaN):告诉代码跳过这个值