【问题标题】:Storing data within R function在 R 函数中存储数据
【发布时间】:2014-05-05 04:05:40
【问题描述】:

我正在用 R 编写一个函数来绘制用户提交的一些数据。绘图区域有一些由恒定数据框定义的多边形,不依赖于提交的数据。数据帧是从一个 26 行 13 列的 csv 文件中读取的。

为了使 R 文件尽可能可移植,我决定将数据框保留在文件中。由于栏目比较多,我想出以下思路:

csv_data <- c(
"h1,h2,h3
v11,v21,v31
v12,v22,v32
v13,v23,v33"
)
write(csv_data, file="temp.csv")
df <- read.csv("temp.csv",header=T)

好吧,我知道这有点恶心。但我不想重新组织原始 csv 以常规方式制作数据框,因为数据集非常大:

h1 <- c(v11, v12, v13)
h2 <- c(v21, v22, v23)
h3 <- c(v31, v32, v33)
df <- data.frame(h1,h2,h3)

那么,有没有更合适的方法来实现这一点?非常感谢!

【问题讨论】:

    标签: r csv dataframe


    【解决方案1】:

    如果想从字符变量数组中创建一个data.frame,怎么样

    df<-read.csv(text=csv_data, header=T)
    

    至少这样你就不需要 write.table。

    【讨论】:

    • 但即便如此,数据也会以两种不同的形式存在于内存中。实际上,如果您执行一次,R 可以为 data.frame 生成代码,您可以将其放入带有dump(c("df"), "") 的文本文件中。只需将该输出复制/粘贴到您的脚本文件即可。
    • dput(df) 会做到的。我相信dump 更多的是当你有多个对象要写出来时。
    • 好主意!正是我想要的。我也会检查 dput 和转储。我只是不知道该怎么想。
    • @thelatemail true,dump() 最适合多个对象,但它也添加了 df&lt;- 部分,而 dput() 将变量关闭。我只是认为dump() 是“更完整的”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多