如何扩展R中大型调查的数据

如何扩展R中大型调查的数据,r,expand,survey,R,Expand,Survey,我有一份包含以下变量的调查数据: df <- data.frame(Sex = c("Male","Female","Male","Female","Male"), Age = c(19,20,34,56,45), ExpansionFactor = c(123456789,31256789,127896543,251436978,536294817)) 有什么建议吗 非常感谢您的帮助。我真的不明白您为什么需要这样的数据

我有一份包含以下变量的调查数据:

df <- data.frame(Sex = c("Male","Female","Male","Female","Male"),
                 Age = c(19,20,34,56,45),
                 ExpansionFactor = c(123456789,31256789,127896543,251436978,536294817))
有什么建议吗


非常感谢您的帮助。

我真的不明白您为什么需要这样的数据。您可以使用加权的数据摘要完美地创建报告,如下所示

数据

library(ggplot2)
library(dplyr)

set.seed(123)

df <- data.frame(
  sex = sample(c("Male", "Female"), size = 100, replace = TRUE),
  age = rnorm(100, mean = 25, sd = 10),
  expansion.factor = sample(12:40, size = 100, replace = TRUE)
)

您确实需要10亿条原始记录吗?一旦数据被扩展,您打算如何处理它?例如,不需要扩展就可以对摘要数据进行建模。非常感谢您的回答。这是一个例子,但我想创建一个报告。根据我的真实数据,我需要扩展到人口,这个人口大约有3500万。我非常感谢您的建议。您可以尝试
tidyr::uncount(df,ExpansionFactor)
或中提到的其他方法。我还想知道您是否必须扩展数据(而不是逐行解析文件中的相关信息)(但如果N=3.5E7和32GB+的RAM,它应该可以工作)。然而,你的报告也将总结数据。如果您觉得需要R中的整个对象,或许可以将其保持为更紧凑的形式,例如作为Rle(请参阅),并为数据拆分成的任何子类别提供不同的runValue。取决于附加信息的来源。例如:
S4Vectors::Rle(粘贴(df$Sex,df$Age,sep=“;”),df$ExpansionFactor)
library(ggplot2)
library(dplyr)

set.seed(123)

df <- data.frame(
  sex = sample(c("Male", "Female"), size = 100, replace = TRUE),
  age = rnorm(100, mean = 25, sd = 10),
  expansion.factor = sample(12:40, size = 100, replace = TRUE)
)
df %>%
    group_by(sex) %>%
    summarise(
        count = sum(expansion.factor),
        mean_age = (sum(age * expansion.factor))/sum(expansion.factor),
        # There are packages with functions like this one
        mean_age2 = weighted.mean(age, expansion.factor)
    )

# A tibble: 2 x 4
  sex    count mean_age mean_age2
  <fct>  <int>    <dbl>     <dbl>
1 Female  1050     28.0      28.0
2 Male    1611     24.3      24.3
df %>%
    ggplot(aes(x = age, weight = expansion.factor)) +
    geom_histogram(bins = 20)