我今天的问题是指我正在研究的数据框架。 数据框的标题如下所示:字符串(唯一),整数N [0-23]
这24个整数值表示与一天中每小时相关联的字符串的频率。从逻辑上讲,每行中的int值总计为字符串在数据中出现的频率。
事情是,我不需要某个小时的字符串的实际频率,而是该频率相对于所有行中整数值之和的百分比。
我的讲师暗示桌子()可能是正确的R工具,但老实说我不明白这应该如何帮助我。
如果所有其他方法都失败了,我会用Java计算它 - 尽管我非常感谢你帮助你在R中做到这一点。
感谢您的阅读,并提前感谢您的帮助,
Rickyfox
@@@@@@我是您的编辑,请阅读@@@@@@
在詹姆斯的帮助下,我得到了以下proptable
事实上,每行的百分比总计为100,但是他们应该对整个表格这样做。有没有办法做到这一点?
答案 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)
第一栏被遗漏,因为它保留了主题字符串。