答案 0 :(得分:1)
data.frame
中有11列。回想一下,data.frame
基本上是向量的list
,它们都具有相同的长度。因此,在length
上运行data.frame
不会返回行数,而是返回向量的长度(即列数)。请改用nrow
。比较以下内容:
x <- data.frame(N = rnorm(10), U = runif(10)) # A 10 by 2 data.frame
print(x)
# N U
#1 -0.3268912 0.54028083
#2 -1.2258164 0.92542376
#3 0.3019713 0.94697492
#4 0.2705930 0.63219863
#5 -0.3168112 0.58040885
#6 2.2770266 0.03954027
#7 1.8342293 0.72598938
#8 1.1173648 0.44547958
#9 -0.7042288 0.09008339
#10 -0.6354642 0.85035006
length(x)
# [1] 2
nrow(x)
# [1] 10
ncol(x)
# [1] 2
dim(x)
#[1] 10 2
编辑:正如@jogo在评论中写的那样,您可以使用以下内容对m
个随机行进行采样:
m <- 5
x[sample(nrow(x), m), ]
请注意,这使用x[<subset of rows>, <subset of cols>]
表示法。参见help("[")
。