我有一个有序的数据框,想知道最后一行的编号。
data_ranking <- reduced_data[order(reduced_data$outcome,reduced_data$hospital,na.last=NA),]
nobs <- nrow(data_ranking)
给了我不同的结果
data_ranking <- reduced_data[order(reduced_data$outcome,reduced_data$hospital,na.last=NA),]
nobs <- length(data_ranking)
我想明白为什么会这样。似乎nrow
给了我正在寻找的答案,但我不明白为什么。
答案 0 :(得分:5)
数据框基本上是每个元素具有相同长度的列表。
列表的每个元素都是一列,因此length
为您提供列表的长度,通常是列数。
nrow
会为您提供行数ncol
(或length
)列数。
一旦我们在data.frame中有非标准结构(例如矩阵)和
,列和列表长度的明显等价就会变得混乱 x <- data.frame(y=1:5, z = matrix(1:10,ncol=2))
ncol(x)
# 3
length(x)
# 3
x1 <- data.frame(y=1:5, z = I(matrix(1:10,ncol=2)))
ncol(x1)
# 2
length(x)
# 2