R计算数据框中的百分比值

时间:2012-09-25 08:10:48

标签: r data-analysis frequency-distribution

我今天的问题是指我正在研究的数据框架。 数据框的标题如下所示:字符串(唯一),整数N [0-23]

这24个整数值表示与一天中每小时相关联的字符串的频率。从逻辑上讲,每行中的int值总计为字符串在数据中出现的频率。

事情是,我不需要某个小时的字符串的实际频率,而是该频率相对于所有行中整数值之和的百分比。

我的讲师暗示桌子()可能是正确的R工具,但老实说我不明白这应该如何帮助我。

如果所有其他方法都失败了,我会用Java计算它 - 尽管我非常感谢你帮助你在R中做到这一点。

感谢您的阅读,并提前感谢您的帮助,

Rickyfox

@@@@@@我是您的编辑,请阅读@@@@@@

在詹姆斯的帮助下,我得到了以下proptable

事实上,每行的百分比总计为100,但是他们应该对整个表格这样做。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:6)

在包含值的prop.table上使用matrix

x <- data.frame(id=letters[1:3],val0=1:3,val1=4:6,val2=7:9)
prop.table(as.matrix(x[-1]),margin=1)
           val0      val1      val2
[1,] 0.08333333 0.3333333 0.5833333
[2,] 0.13333333 0.3333333 0.5333333
[3,] 0.16666667 0.3333333 0.5000000

编辑:一个完整的例子:

tt=read.table("topichitsperhod.csv",sep=",",header=TRUE)  
tt=na.omit(tt[-1])
pt=prop.table(tt[-1],margin=NULL)

第一栏被遗漏,因为它保留了主题字符串。

相关问题