需要帮助从调查数据创建表格

时间:2014-06-24 23:15:46

标签: r

我觉得这是一个简单的问题,我应该能够弄清楚自己,但我似乎无法想出一个解决方案。

我一直在阅读这里和其他地方的各种帖子,但我似乎无法想象我想做什么(也许我只是没有使用正确的术语?)

我得到了一些这样的调查数据:

df <- data.frame(id = c(101,102,103,104,105,106,107), 
q1_1 = c(1,3,3,2,5,4,2), 
q1_2 = c(3,4,5,5,2,1,1), 
q1_3 = c(5,5,2,2,3,1,4))

df

我可以创建一个表格,给出响应比例:

round(prop.table(table(df$q1_1)),3)*100

我想要的是构建同一个表,但是有多行(每行是一个不同的问题),而列是响应级别。我怎么做?

这让我疯了。任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

这很简单:

> out <- lapply(df, function(x) round(prop.table(table(x)),3)*100)
> do.call(rbind, out[2:4])
        1    2    3    4    5
q1_1 14.3 28.6 28.6 14.3 14.3
q1_2 28.6 14.3 14.3 14.3 28.6
q1_3 14.3 28.6 14.3 14.3 28.6