大家好我正在尝试解决R中的一个小问题来计算R中的新变量。我的数据框的输出版本是:
structure(list(sexo = c(-22.84754, -30.95001, -37.36658, -45.64382,
-54.9466, -0.1732915), cli_edad = c(5.972972, 11.67697, 16.46362,
26.57938, 47.19307, 0.1037254), edad2 = c(-0.0637181, -0.1199798,
-0.1600652, -0.2424397, -0.4273092, -0.001068), veces_mora_ago12 = c(-100.6952,
-166.6598, -391.6087, -710.2349, -1098.773, -0.3525356), veces_mora_sep12 = c(20.06456,
162.5816, 388.1126, 738.8196, 1181.483, 0.2907068), veces_mora_oct12 = c(79.44273,
-15.99917, -13.33856, 9.459844, 103.7592, -0.0863719)), .Names = c("sexo",
"cli_edad", "edad2", "veces_mora_ago12", "veces_mora_sep12",
"veces_mora_oct12"), class = "data.frame", row.names = c(NA,
6L))
该数据帧的行是不同模型的系数。当我在R中加载数据帧时,我需要为每个模型计算一个新变量。例如,加载的数据框DF
将具有与z
相同的名称,但在这种情况下,我必须为DF
计算6个附加变量,这些变量是针对不同的公式定义的,例如考虑z
的名称和z
的第一行:
DF$I1=-22.8475400*DF$sexo+5.9729720*DF$cli_edad-0.0637181*DF$edad2-100.6952000*DF$veces_mora_ago12+20.0645600*DF$veces_mora_sep12+79.4427300*DF$veces_mora_oct12
与上一个公式一样,我必须为z
的名称和第二行之间的组合编写另外5个公式,直到z
的名称和第六行。
我不知道是否可以在R中创建这个公式,当我加载数据框时可以应用这些来计算新变量。谢谢你的帮助。
答案 0 :(得分:1)
你的例子:
> -22.8475400*DF$sexo+5.9729720*DF$cli_edad-0.0637181*DF$edad2-100.6952000*DF$veces_mora_ago12+20.0645600*DF$veces_mora_sep12+79.4427300*DF$veces_mora_oct12
[1] 17410.94776 19549.83787 47112.85467 88294.47367 144127.32240 39.04883
@JJLagrange说我觉得你想要这个???
DM=as.matrix(DF)
DM%*% t(DM)
1 2 3 4 5 6
1 17410.94776 19549.8379 47112.8547 88294.4737 144127.3224 39.0488287
2 19549.83787 55558.5082 129927.5614 240057.8018 375800.3450 113.9736682
3 47112.85467 129927.5614 305834.0191 566896.3661 890283.7105 260.2182340
4 88294.47367 240057.8018 566896.3661 1053167.3837 1658033.7139 475.0128054
5 144127.32240 375800.3450 890283.7105 1658033.7139 2619216.6537 736.2772169
6 39.04883 113.9737 260.2182 475.0128 736.2772 0.2570419