我是R的新手,我想知道如何从Excel中完全由数字制作的csv文件中获取一定数量的样本。我设法将数据导入R并将每个数字作为一行使用,然后将随机行作为样本,但这似乎不切实际。整个文件显示为一列,我用下一个代码拿了一些样本:
ListView
另外请告诉我是否有办法重复此步骤至少100次,并将每个样本保存在另一个图表中,以后再使用它。
答案 0 :(得分:0)
这就是你如何拍摄100个样本并存储它们:
my_samples <- replicate(100, Heights[sample(nrow(Heights), 5), ])
如果你的.csv文件只用逗号分隔一种类型的值(高度),而不是结构化为表格,你可能想把它变成一个向量。大多数读取文本数据格式的R函数都会将数据转换为数据框或其他类似格式的表格。
heights <- unlist(strsplit(readLines("yourfile.csv"), ","))
带有.csv文件的逗号分隔值的 readLines("yourfile.csv")
会将其转换为字符向量。 strsplit()
然后为你做分离工作。
将这些全部放在一起,用一个虚拟的例子:
writeLines(c("1,2,3,4,5", "6,7,8,9,10"), "test.csv")
heights <- as.numeric(unlist(strsplit(readLines("test.csv"), ",")))
set.seed(123)
my_samples <- replicate(100, sample(heights, 5))
dim(my_samples)
# [1] 5 100
您可以看到my_samples是一个包含5行的矩阵(每行对应于从heights
采样的单个元素)和100列(每列对应于100个采样事件中的一个)。 / p>
答案 1 :(得分:0)
您可以使用用于引导的推断包。
library(infer)
rep_sample_n(size = 100, replace = TRUE, reps = 1)
这里“尺寸”是样品的数量。 “替换”(如果为真)允许您在采样时替换观察 - 也就是说,旋转轮盘赌轮而不会在轮子出现时将数字从轮子上移开。 'reps'允许您重复采样过程。