如何扩展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)