我有数据,看起来像 .和我的代码中 简单地计算一些价值和结合的输出矢量的 原始数据的框架。

options(width=200)

args<-commandArgs(trailingOnly=FALSE)
dat <- read.table("http://dpaste.com/89376/plain/",fill=T);

problist <- c();

for (lmer in 1:10) {
   meanl <- lmer;
   stdevl <- (0.17*sqrt(lmer));
   err_prob <- pnorm(dat$V4,mean=meanl, sd=stdevl);
   problist <- cbind(problist,err_prob);
}

dat <- cbind(dat,problist)
#print(dat,row.names=F, column.names=F,justify=left)

# Why this breaks?
write(dat, file="output.txt", sep="\t",append=F);

我有几个问题关于上述:

  1. 但是,为什么写()'功能上给出了这样的错误。有没有办法解决这个问题?

    错误的猫(list(...),文件,sep,填写、标签、追加):参1(类型"列表")无法处理的"猫" 呼叫:写>猫 执行暂停

  2. 名称用于绑定的矢量数据的框架是作为添加"errprob"为所有10个新的 列。有没有办法到他们的名字像"errprob1","errprob2",等等?

有帮助吗?

解决方案

首先,有必要为分号,R知道底线就是一个突破。


for (lmer in 1:10){
    meanl <- lmer
    stdevl <- (0.17*sqrt(lmer))
    err_prob <- pnorm(dat$V4,mean=meanl, sd=stdevl)
    problist <- cbind(problist,err_prob)
}
colnames(problist)<-paste("errorprob",1:10,sep="")
dat <- cbind(dat,problist)
write.table(dat, file="output.txt", sep="\t",append=F)

  1. 我相信你是在寻找写。表功能

  2. 使用colnames功能

其他提示

  1. 你可以使用写。table()instead of write()使用与指定参数以上。后者是适用于印刷矩阵(但可能需要指定ncol或调换输入矩阵),但前者更一般的,我用它对这两个矩阵和数据框架。

  2. 你可以替换

    err_prob <-pnorm(dat$V4,意味着=meanl,sd=stdevl)

    problist <-cbind(problist,err_prob)

assign(sprintf("err_prob%d",lmer),pnorm(dat$V4,mean=meanl, sd=stdevl))
problist <- eval(parse(text=sprintf("cbind(problist,err_prob%d)", lmer)))

最后一行分析的字符串作为一种表达,然后评估。你也可以做

colnames(problist) <- sprintf("err_prob%d",1:10)

后验

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top