【问题标题】:Write output of a loop写一个循环的输出
【发布时间】:2015-11-17 01:08:06
【问题描述】:

我正在对数千个文件进行循环以执行 Pagel Lambda

files <- list.files(pattern=".txt")
column_names <- data.frame(files = "files", V1 = "V1", Lambda = "lamda", LogL = "logL", LogL10 = "logL10", pvalue = "P")
write.table(column_names, file = "output.csv", row.names = FALSE, 
            append = FALSE, col.names = FALSE, sep = ", ", quote = TRUE)

for(i in files){
  graph <- read.table(i,header=F)
  row.names(graph)<-graph[,1]
  trait<-graph[,-1]
  names(trait)<-row.names(graph)
  result <- data.frame(t(c(files[i], phylosig(mytree, trait, method="lambda", test=TRUE, nsim=999))))
  write.table(result, file = "output.csv", row.names = FALSE, 
              append = TRUE, col.names = FALSE, sep = ", ")
}

我的目标是为每个输入文件的结果获取一个包含 1 行的输出文件。 我的变量 result 如下所示:

[1] "some data in x given as 'NA', dropping corresponding species from tree"
             V1       lambda      logL     logL0 P
1 EOG7B0F7J.txt 6.610696e-05 -59.62533 -59.62509 1

我需要将这些值放在输出文件和输入文件的名称中(我还没有在循环中设置,我不知道该怎么做)

所以我希望输出看起来像这样:

FileA  V1       lambda      logL     logL0 P
FileB V1       lambda      logL     logL0 P
FileC V1       lambda      logL     logL0 P

或类似的东西 - 如果有人能帮我解决这个问题,我会非常高兴

非常感谢

【问题讨论】:

  • 您的data.frame 行中有错字。
  • 真的,我修好了!谢谢

标签: r loops


【解决方案1】:

我想通了,如果有人感兴趣,这里是答案:

column_names <- data.frame(i = "files", Lambda = "lamda", LogL = "logL", LogL10 = "logL10", pvalue = "P")
                           write.table(column_names, file = "output.csv", row.names = FALSE, 
                           append = FALSE, col.names = FALSE, sep = ", ", quote = TRUE)

for(i in files){
  graph <- read.table(i,header=F)
  row.names(graph)<-graph[,1]
  trait<-graph[,-1]
  names(trait)<-row.names(graph)
  result <- data.frame(t(c(i, phylosig(mytree, trait, method="lambda", test=TRUE, nsim=999))))
  my.df <- data.frame(lapply(result, as.character), stringsAsFactors=FALSE)
  write.table(my.df, file = "output.csv", row.names = FALSE, append = TRUE, col.names = FALSE, sep = ", ")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 2016-10-18
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2013-09-25
    • 2018-08-18
    相关资源
    最近更新 更多