当变量名存储在向量中时,如何在R中使用save()函数?

时间:2015-07-11 04:32:47

标签: r

我有一个矢量说varNames有" name"某些变量为"字符"。现在我想使用save()将这些特定变量保存为rdata。我应该怎么做呢?

我试图做以下事情:

def create
 alchemyapi = AlchemyAPI.new()
 response = alchemyapi.combined('url', params[:q],  {'extract'=>'page-image, title, author, concept' })
 puts JSON.pretty_generate(response)

if 
 *@user = current_user*
 *@user.documents.create(result: response)*
 flash[:notice] = "Input was successfully analyzed and persisted."
 redirect_to action: 'index'
else
 flash[:error] = "There was a problem analyzing your input."
 redirect_to action: 'index'
end
end

正如预期的那样,foo是一个符号列表。我在想做像

这样的事情
> varSet
  [1] "blah1"  [2] "blah2"
> str(vatSet)
  chr [1:44] "blah1" "blah2" ...
> foo <- lapply(varSet, function(x) as.name(x))

我猜unlist(foo)无效。我该如何解决这个问题?您是否还可以清除我的概念为什么unlist(foo)不会将符号列表取消列出?

编辑:添加人工示例

eval(unlist(foo), file="fileName")

我可以这样做来保存x和y。

> x <- c(1,2,3)
> y <- data.frame(m=c(1,2), n=c(1,2,3))

但假设我有

> save(x, y, file="filename.rda")

在我的示例中,varSet是一个非常大的集合。所以我需要使用varSet来保存名称存储的相应变量。

1 个答案:

答案 0 :(得分:1)

您可以将任何数据对象保存为:

$('#datetimepicker1').on("dp.change",function(e){
        var selectedDate = $('#datetimepicker1').find("input").val();
        selectedDate = moment(selectedDate,"MM-DD-YYYY");
        $(".temp").text(moment(selectedDate).toISOString());
    });

但你的询问听起来有点困惑。你想要保存它,还是以特定的方式保存它,比如data.frame?

假设您的列表列表名为varSet:

您也可以使用plyr解决方案:

save(varSet, file="varSet.RData")

或者更多手动策略。假设你列出了100个元素:

library (plyr)
  df <- ldply(varSet, data.frame)

上面会将所有字符列转换为因子,为避免这种情况,你可以在data.frame()调用中添加一个参数:

df <- data.frame(matrix(unlist(varSet), nrow=100, byrow=T))