同一表中R - 多列中定量数据的频率分布

时间:2013-11-23 13:24:25

标签: r histogram frequency

我使用了这些CMD:

x <- read.csv("path"header=TRUE)

d153 = x$MG.153.m4

range(d153,na.rm=TRUE)

breaks = seq(0,1900, by=100) #1850 is max, 11 is min

d153.cut  = cut(d153,breaks,right=FALSE)

d153.freq = table(d153.cut)

cbind(d153.freq)

这只给出了“x”中96列中的一列。如何同时为每列运行所有这些CMD并将它们排列在同一个表中?

1 个答案:

答案 0 :(得分:0)

编写一个函数,构造一个数据框,其中包含要应用于数据框每列的断点的计数和标签(或至少是具有数值的列。)目前尚不清楚所有列的范围是否相同而我将假设它们不同,因此切割功能将负责确定范围和(20)断点:

tbl.to.col <- function(z) {col = deparse(substitute(z))
               res <-cbind( dataframe(counts=table(cut(z, 20)), 
                                      labels=names(table(cut(z, 20))) )
               names(res) <- paste(col, names(res), sep="_")
               res}
dflist <- lapply(x[ , is.numeric(x)] , tbl.to.col)
big.dfrm <- do.call(cbind, dflist) # will have 2*number of numeric cols

(在没有数据的情况下未经测试。)