我使用了这些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并将它们排列在同一个表中?
答案 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
(在没有数据的情况下未经测试。)