代码之家  ›  专栏  ›  技术社区  ›  mr.T

将行作为代码写入csv文件

r
  •  1
  • mr.T  · 技术社区  · 2 年前

    我有一个日期框,其中有一列包含代码行。

    f1 <- 'paste0("f","q","D",collapse = "")'
    f2 <- "q <- rep(NA,10) 
           for(i in 1:10){
           q[i] <- 5+i
           } 
           q"
    
    df <- data.frame(code=c(f1,f2), n=1:2 , lg=c(TRUE,FALSE))
    

    代码可以运行

    eval(str2expression(df$code[1]))
    eval(str2expression(df$code[2]))
    

    如何正确地将其保存在 csv 然后读取此帧,以便可以再次运行此代码

    pth <- "C:\\Users\\....\\Desktop\\f.csv"
    
    # how to correctly save
    write.csv(m, pth, row.names = F, quote = F)
    
    # how to correctly read
    df2 <- read.csv(pth)
    
    # so the code can be run again
    eval(str2expression(df2$code[1]))
    eval(str2expression(df2$code[2]))
    
    1 回复  |  直到 2 年前
        1
  •  3
  •   MrFlick    2 年前

    保存文件时需要使用引号。

    write.csv(df, pth, row.names = F)
    

    然后它应该是一个有效的CSV文件,您可以稍后读取。否则,您将创建一个无效的CSV文件(您的代码中有逗号,因此这不是一个明确的分隔符)。