假设我们在一项调查中有 2 个问题,一个是关于个人推荐一家公司的可能性(为简单起见,假设有 2 家公司)。
所以,对于这个问题,我有一个包含 2 列的 data.frame:
df.recommend <- data.frame(rep(1:5,20),rep(1:5,20))
colnames(df.recommend) <- c("Company1","Company2")
并且,假设我们有另一个问题,要求受访者在他们认为“适合”公司的属性旁边勾选一个框。
所以,对于这个问题,我有另一个包含 4 列的 data.frame:
df.attribute <- data.frame(rep(0:1,50),rep(1:0,50),rep(0:1,50),rep(1:0,50))
colnames(df.attribute) <- c(
"Attribute1.Company1",
"Attribute2.Company1",
"Attribute1.Company2",
"Attribute2.Company2")
现在,我想做的是查看属性 1 和 2 如何与所有公司(独立于公司)推荐问题的可能性范围相关。例如,只是为了了解那些极有可能推荐和属性 1 的人之间存在哪些惯性。
因此,我首先将两个问题绑定在一起:
df <- cbind(df.recommend, df.attribute)
我的问题是试图弄清楚如何堆叠这些数据,使列看起来像:
df.stacked <- data.frame(c(df$Company1,df$Company2),
c(df$Attribute1.Company1,df$Attribute1.Company2),
c(df$Attribute2.Company1,df$Attribute2.Company2))
colnames(df.stacked) <- c("Likelihood","Attribute1","Attribute2")
这个例子在很大程度上被简化了。在我的实际问题中,我有 34 个公司和 24 个属性。
你能想出一种方法来有效地堆叠它们,而不必输入所有的 c() 语句吗?
注意:可能性的列模式是 Co1,Co2,Co3,Co4...,属性的模式是 At1.Co1,At2.Co1,At3.Co1 ... At1.Co34,At2.Co34...