【发布时间】:2016-08-25 10:10:58
【问题描述】:
见下文
for(stockName in c("AAPLstock", "FBstock", "GOOGstock", "HPQstock", "MSFTstock", "YHOOstock")){
assign(paste(stockName), read.table(paste(stockName,'.txt', sep = ""), quote="\"", comment.char="")) }
这会创建这些变量。这很酷
ls(pattern = "stock")
[1] "AAPLstock" "FBstock" "GOOGstock" "HPQstock" "MSFTstock"
[6] "stockName" "YHOOstock"
当我尝试将它们全部分配给如下数据框时
df<-list(ls(pattern = "stock"))
> df
[[1]]
[1] "AAPLstock" "FBstock" "GOOGstock" "HPQstock" "MSFTstock"
[6] "stockName" "YHOOstock"
我想要 df 将这些股票包含为变量,而不是字符串。所以下面的函数给了我想要的结果
df <- list(AAPLstock, FBstock, GOOGstock, HPQstock, MSFTstock, YHOOstock)
但这需要我输入所有变量。问题是,我将这样做,但有更多股票,我不想输入 100 个变量的名称,而且更改会很痛苦。所以我想要一种使用 ls() 或类似方法将表示变量的字符串分配给数据框的方法。
我尝试过 Parse 和 assign,但他们仍然分配 df 字符串而不是变量。
【问题讨论】:
-
为什么不完全跳过使用 assign ,并使用 lapply 在您的股票名称向量上创建一个命名列表?
-
@Heroka 我该怎么做?
-
lapply(stockNameVector, function(stockName) read.table(paste(... )
标签: r string variables variable-assignment