gpt4 book ai didi

80 行 7 列的随机样本

转载 作者:行者123 更新时间:2023-12-04 11:22:43 25 4
gpt4 key购买 nike

我有一个 7 列 80 行的表格,看起来像这样,

         **`1`   `3`   `5`   `7`   `9`  `11`
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl>**
1 6 7 7 8 NA NA
2 6 7 13 13 14 NA
3 9 10 10 8 NA NA
4 4 3 5 3 NA NA
5 3 2 5 5 6 NA
6 7 7 5 4 5 5
7 9 5 8 8 NA NA
8 6 6 7 NA 7 NA
9 NA 6 5 5 NA NA
10 6 7 6 4 7 6
# ... with 70 more rows

我需要为每行的 7 列之一制作一个随机样本。例如,第 1 (8) 行,第 2 (6) 行,第 3 (10) 行,等等所有 80 行。我可以使用示例函数吗?如果是,那么如何使用?我可以用 NA 做什么。我需要进行 1000 次采样并计算每个样本的平均值。

任何帮助将不胜感激!
谢谢,
奥尔丁

最佳答案

这是一个使用 plyr::adply 的解决方案。

library(plyr)

# original dataset
df1 <- data.frame(
c( 6, 6, 9, 4, 3, 7, 9, 6, NA, 6),
c( 7, 7, 10, 3, 2, 7, 5, 6, 6, 7),
c( 7, 13, 10, 5, 5, 5, 8, 7, 5, 6),
c( 8, 13, 8, 3, 5, 4, 8, NA, 5, 4),
c(NA, 14, NA, NA, 6, 5, NA, 7, NA, 7),
c(NA, NA, NA, NA, NA, 5, NA, NA, NA, 6)
)


# returns a single column from a row with NA's removed
samplerow <- function(r) {
# r is a single row of df
# eliminate NAs from the dataset.
r <- r[!is.na(r)]
# Return one sample from this row
# Not sure what happens if the row is all NAs. Don't do that.
r[sample.int(length(r),1)]
}

N <- 1000
# for N times,
# for each row select 1 non-NA valued column,
# take the mean of all rows
replicate(N, mean(adply(df1, 1, samplerow, .expand=F)$V1))
#...redacted...
N <- 5
set.seed(1)
replicate(N, mean(adply(df1, 1, samplerow, .expand=F)$V1))
[1] 6.0 6.2 6.2 7.0 7.1

关于80 行 7 列的随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51696308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com