2015-10-14 84 views
0

我想要做的就是获得一个文件,其中包含输入的邮政编码和特定位置的邮政编码之间的距离(以英里为单位)的信息。我将所有可能的输入作为列名称,以及您将作为行名称进行搜索的位置。我希望能够在应用程序中输入邮政编码时填写此数据集。如何在应用程序关闭时创建一个可以保存的文件,并且在下一次运行应用程序时能够对其进行编辑?我已经尝试了很多方法,但是我一直无法写入文件,并且每次填写更多信息时重命名该文件似乎都非常低效。如何在R中编辑数据库?

+0

也许[闪亮的应用程序中的持久数据存储](http://deanattali.com/blog/shiny-persistent-data-storage/)将帮助 – tospig

回答

0

如果刨只为您的应用程式上的一个实例,在任何时候运行,你可以使用wrtie.csvread.csv或者您可以将您的变量保存为使用loadsave功能R数据保存文件。

data <- matrix(runif(5*5),nrow=5) 

# Save as .Rdata 
save(file="mydata.Rdata",data) 

# Load data into variable 
n.env <- new.env() 
load(file="mydata.Rdata",envir=n.env) 
my.dat <- n.env$data 

如果该应用程序应该支持多用户,也许这是最好有您存储用户在一列,并在使用序列like this其他列的数据矩阵数据库(SQL-精简版也许?)。

# The database method 
library(RSQLite) 

db <- dbConnect(SQLite(), dbname="mydb.sqlite") 

# Create table 
dbSendQuery(conn = db, 
    "CREATE TABLE Data (
    ID INTEGER PRIMARY KEY AUTOINCREMENT, 
    User INTEGER NOT NULL, 
    Stored BLOB, 
    dim INTEGER 
);") 

# Basically how this works, serialize and then unserialize 
# unserialize(charToRaw(rawToChar(serialize(data, NULL, ascii=T)))) 

in.data <- list("dat1"=rawToChar(serialize(data, NULL, ascii=T)), "user"="user1") 

# Insert values it 
dbGetPreparedQuery(db, 'INSERT INTO Data (Stored, User) VALUES (:dat1, :user)', 
        bind.data = as.data.frame(in.data)) 

# Now retrive the data again 
df2  <- dbGetPreparedQuery(db, "SELECT * FROM Data WHERE User = :user", bind.data = data.frame("user"="user1")) 
my.dat2 <- unserialize(charToRaw(df2$Stored[1])) 

希望这有助于!