微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何基于现有数据集中一个变量的行创建新数据集,而每一行都有多个观察值

如何解决如何基于现有数据集中一个变量的行创建新数据集,而每一行都有多个观察值

我有一个具有以下结构的数据集:

变量“类”= 1,..,50 每个班级都有多个观察值:从 2000 (#obs in class1) 到 200(#obs in class 50) 每个班级每个人的变量年龄、性别、HIV

要做的是从这个原始数据集创建数据,每行显示变量“类”(另一方面是 50 行,而不是我为原始数据集所拥有的大约 10000 行)和使用您看到的变量。

我是 R 新手,所以我不知道如何压缩(?!)数据,例如第 1 行显示第 1 类,但包含 2000 个人的年龄、性别和 HIV 信息!

我需要这个新数据集,因为我正在编写一个函数一个 glm)并且该函数的数据源不应该是原始数据,它应该基于类! 但是这个glm的预测将在个人层面上! (在原始数据上)

任何人都可以随便给我一个提示提示吗?

这是一个小规模的数据,如下所示:

library(simstudy)

Class <- defData(varname = "Class",dist = "categorical",formula = "0.8;0.2",id="Class1")

Class <- defData(Class,varname = "Classic",formula = "0.8;0.2")

Class <- defData(Class,varname = "clustersize",dist = "normal",formula = "5",variance = 0)

d1 <- genData(1,Class) #'
d1

dF1 <- genCluster(d1,cLevelVar = "Class",numIndsVar = "clustersize",level1ID = "Class1")
dF1

Class2<- defData(varname = "Class",formula = "0.3;0.2;0.1;0.3;0.1",id="Class1")

Class2 <- defData(Class2,formula = "0.3;0.2;0.1;0.3;0.1")

Class2 <- defData(Class2,dist = "noZeroPoisson",formula = "3")


d2 <- genData(3,Class2) #'
d2

dF2 <- genCluster(d2,level1ID = "Class1")
dF2

d<-rbind(dF1,dF2)

v <- defDataAdd( varname = "Age",formula = "20",variance = 10)

v <- defDataAdd(v,varname = "Sex",dist = "binary",formula = "0.4",link = "logit")

v <- defDataAdd(v,varname = "HIV",formula = "0.7",link = "logit")

d <- addColumns(v,d)

Y<- defDataAdd( varname = "Y",formula = "0.1*Age+0.2*Sex+0.5*HIV",link = "logit")

d <- addColumns(Y,d)

d

让我们这样说吧。 “d”是我拥有的原始数据集,根据我提供的代码有 16 行(个人)。现在我想按年龄、性别、艾滋病毒对 Y 进行建模,但是该模型应该使用的数据不是“d”,它必须是从“d”中提取的新数据集,最终得到 3行(因为我有 3 个班级)。所以我的困惑是当我有 11 个人在第 1 类、2 个在第 2 个人、3 个在第 3 个人时,我该怎么做(从 d 创建一个新数据集)。所以我将在这个新数据集中运行模型,并将在原始数据集“d”中对其进行预测

解决方法

感谢您更新问题。但是,我无法重现您的示例。该代码给出了错误。如果您想估计 GLM,您可以先创建因子,然后拟合 GLM。我不清楚你所说的类是什么意思。

假设您有以下数据 mtcars,并希望通过 cylvsgear 建模。然后您可以先为 vsgear 创建因子,然后在 glm 中使用新数据。

library(dplyr)

# Change vs and gear to factors
mtcars1 <- mtcars %>%
  mutate(across(c(vs,gear),as.factor))

比较以下两个:

glm(cyl ~ vs + gear,data = mtcars1)
glm(cyl ~ vs + gear,data = mtcars)

第一个使用因子,第二个使用数值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。