使用rowSums后调用nrow返回NULL,为何显示数据行数为0?
问题原因及解决办法
- 核心问题是函数误用:
total$total_sum是rowSums()生成的一维向量,而nrow()是专门用来获取数据框、矩阵这类二维结构行数的函数,向量没有“行”属性,所以调用nrow(total$total_sum)会直接返回NULL——这不是数据行数为0,是函数和操作对象不匹配。 - 如果要查看这个向量的元素个数(对应原数据框的行数),应该用
length(total$total_sum),这个函数能正确返回一维结构的长度。 - 额外说明:如果原数据框
total本身是空的(行数为0),那rowSums()生成的向量长度也会是0,此时length(total$total_sum)会返回0,但你的情况返回NULL,根源还是误用了nrow()。
内容的提问来源于stack exchange,提问作者Laura31
相关产品推荐
相关产品推荐

