如果然后在R中声明基于行数

时间:2015-10-28 22:53:49

标签: r if-statement

我有一个等式,我想应用于文件列表。该等式基于水深和密度进行计算。所有文件每1米都有数据。当水大于30米(薄片超过30行)时,此方程有效。如果某些文件中有等于或少于30行,如何使用if then语句告诉R插入“0”或“NA”?

这是我的工作代码,用于超过30行的文件。

stratindex2=function(file){
    ctd2=read.csv(file)         
    ctd2=ctd2[-c(1:30),]
    x=ctd2$Density..sigma.t..kg.m.3..
    row=nrow(ctd2)              
    (x[row]-x[1])/(row-1)           
}

1 个答案:

答案 0 :(得分:1)

您可以添加一个返回和一个if:

stratindex2=function(file){
    ctd2=read.csv(file)
    if(nrow(ctd2)<31){return(NA)}  
    ctd2=ctd2[-c(1:30),]
    x=ctd2$Density..sigma.t..kg.m.3..
    row=nrow(ctd2)              
    (x[row]-x[1])/(row-1)           
}