【发布时间】:2014-01-31 15:44:47
【问题描述】:
我在下面有一个示例数据:
library(prodlim)
NUM <- 100
dat1 <- SimSurv(NUM)
dat1$time <- sample(24:160,NUM,rep=TRUE)
dat1$X3 <- sample(0:1,NUM,rep=TRUE)
dat1$X4 <- sample(0:9,NUM,rep=TRUE)
dat1$X5 <- sample(c("a","b","c"),NUM,rep=TRUE)
dat1$X6 <- sample(c("was","que","koa","sim","sol"),NUM,rep=TRUE)
dat1$X7 <- sample(1:99,NUM,rep=TRUE)
dat1$X8 <- sample(1:200,NUM,rep=TRUE)
attach(dat1)
我发现了一行简洁的代码,它提供了简单的summary(dataset) 在问题“Loop through a .csv file in R, computing relative frequencies?”中一次无法完成的所有必要频率:
freq <- apply(X = dat1, MARGIN = 2, FUN = function(x) {summary(factor(x))})
我的问题是如何提取每个可变频率,以便可以在一个命令中将它们保存在 CSV 文件中?
命令 freq[1:1] 到 freq[n:n] 可以完成这项工作,但编辑每个命令以进行打印很繁琐,而且控制台中的输出需要进一步的文本编辑。
【问题讨论】:
-
如果你想为每个变量使用不同的 csv 输出,你可以使用 sapply(seq(freq) , function(z) write.csv(freq[[z]] , paste0("fileout",z ".csv")))
-
谢谢,但是如何增加要写入 CSV 的文件的长度?我的一些变量已经被切割成
Others XXXXX,我想用尽所有变量值。 -
如何将每个CSV的名称设置为变量名?
-
对于 .csv 文件名,在 write.csv 调用中使用 paste0(names(freq[z]),".csv")
-
找到了,我应该使用
summary(mydata, maxsum=Inf)来耗尽here 中的所有变量值。