如何获得R中data.frame的行数?[关闭]


157

读取数据集后:

dataset <- read.csv("forR.csv")
  • 我怎样才能得到R给我它包含的个案数量?
  • 另外,返回的值是否将包括用na.omit(dataset)?省略的排除情况?

1
我还建议您看一下str()它,因为它提供了有关对象的其他有用细节。经常可以解释为什么一列表现不佳(因数而不是数值等)。
大通

3
请先阅读Owen的R指南(cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf),如果可能,请阅读R入门(cran.r-project.org/doc/manuals/R- intro.pdf)。两者都在R的官方网站上。您真幸运,您真的得到了答案。在r-help列表上,您会以不太优雅的方式将您重定向到手册。没有冒犯的意思。
Joris Meys 2010年

11
@Joris-点(无罪),但我的印象是SE网站旨在通过手册无法提供的方式促进问题/解决方案学习。此外,此问题现在也适用于其他初学者。谢谢你的链接。
汤姆·赖特

2
我不同意您的说法,即这个问题对其他初学者会有所帮助,尤其是如果他们不懂手册的话。他们只会创建一个重复的问题。
Joshua Ulrich 2010年

6
而且,四年后,这是我在Google上试图找到该问题答案的第二次点击。无需我创建副本(@JoshuaUlrich)。
理查德

Answers:


173

dataset将是一个数据帧。由于没有forR.csv,我将组成一个小的数据框用于说明:

set.seed(1)
dataset <- data.frame(A = sample(c(NA, 1:100), 1000, rep = TRUE),
                      B = rnorm(1000))

> head(dataset)
   A           B
1 26  0.07730312
2 37 -0.29686864
3 57 -1.18324224
4 91  0.01129269
5 20  0.99160104
6 90  1.59396745

要获得案例数,请使用nrow()或来计算行数NROW()

> nrow(dataset)
[1] 1000
> NROW(dataset)
[1] 1000

为了省略后计数数据NA,使用相同的工具,但包裹datasetna.omit()

> NROW(na.omit(dataset))
[1] 993

和小写变体(和)之间的区别在于NROW(),小写版本仅适用于具有维度(数组,矩阵,数据框)的对象。大写版本将与向量一起使用,向量将被视为1列矩阵,如果最终对数据进行子集化(例如R删除一个空维度),则该向量将很健壮。NCOL()ncol()nrow()

或者,使用complete.cases()sumcomplete.cases()返回逻辑向量[ TRUEFALSE],以指示是否NA对任何行都具有观察值。

> sum(complete.cases(dataset))
[1] 993

36

简要地:

  1. 运行dim(dataset)检索既ñķ,你也可以使用nrow(df)ncol(df)(甚至NROW(df)NCOL(df)-需要变种对于其他类型的太)。

  2. 如果通过进行转换dataset <- na.omit(dataset),则案例不见了,不算在内。但是,如果你 summary(dataset)在NA案件占。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.