2

我还有一个新手问题;

假设我有一组数字

graph_val <- c(4,2,3,4,1,1,9)

我需要根据这个比例创建一个频率表

           1            2            3            4            5            9 
 "Very Poor"       "Poor"    "Average"       "Good"  "Very Good" "Don't Know" 

基本上我想知道的是如何将表格转换为这种格式:

 "Very Poor"       "Poor"    "Average"       "Good"  "Very Good" "Don't Know"
           2            1            1            1            0            1 

或者至少:

           1            2            3            4            5            9
           2            1            1            1            0            1 

我可以稍后使用带有 barplot 2 的 names.arg 添加标签。

我一天中的大部分时间都在做这件事,在这之后,我剩下的自动化工作就顺利进行了。我以为我在制表方面走在了正确的轨道上,但没能完全做到。

4

2 回答 2

2

首先,您需要考虑数据。完全按照您对分类变量的看法来考虑一个因素。级别告诉它会发生什么,标签给它起了一个漂亮的名字。

graph_val <- factor(graph_val, levels=c(1,2,3,4,5,9), labels=strsplit('
Very Poor
Poor
Average
Good
Very Good
Don\'t Know
', '\n')[[1]][-1]) 
## Take note of the escape character in Don\'t Know

summary(graph_val)

如果你需要百分比,你可以这样做:

summary(graph_val)/length(graph_val)\

或这个:

round(summary(graph_val)/length(graph_val),2)
于 2010-10-14T03:55:13.583 回答
1

以下来自“An Introduction to R”的内容直接回答了您的问题:

http://cran.r-project.org/doc/manuals/R-intro.html#Frequency-tables-from-factors

于 2010-10-14T03:46:08.053 回答