无法将东西存放在物体中

时间:2015-12-14 08:14:12

标签: r

我对R来说很新,但是直到现在才存储值。我试图获取'data'中第二列的值,并以它们当前所在的格式将它们存储在symbolList中(用引号,逗号分隔)。谢谢!

library(quantmod)
symbolList <- c("DLX", "SWK", "AGN", "SKX", "GE", "ZOES", "NVCR", "FRT", "ENLK", "PYPL", "TXMD", "PLAY", "NWL", 
            "JAH")
## ALTERNATIVE symbolList <-        paste(c("'",paste(d[,2],collapse="','"),"'"),collapse="")
## ALTERNATIVE symbolList <- c(cat(paste(shQuote(( d[,2]), type="cmd"),   collapse=", ")))

results <- NULL
for (ii in symbolList){
data1 <- getSymbols(Symbols = ii, 
                  src = "yahoo", 
                  from = Sys.Date() - 150, 
                  auto.assign = FALSE)
de = head(data1,100)
colnames(de) <- c("open","high","low","close","volume","adj.")
overnightRtn <- (as.numeric(de[2:nrow(de),"open"])/as.numeric(de[1:  (nrow(de)-1),"close"])) - 1

results <- rbind(results,cbind(
paste(round(sum(overnightRtn,na.rm=TRUE),2),"%",sep="")))
} 
colnames(results) <- c("overnightRtn")
rownames(results) <- symbolList

View(results)

1 个答案:

答案 0 :(得分:4)

这里有几件事。 如果您想将data.frame character列的内容存储在vector变量中,只需执行

symbolList <- data[,2]

如果您想存储整个character列,只有一个空格分隔的character变量,那么

symbolList <- paste(data[,2],collapse=" ")
然而,它们将是空间分离的。 如果您要存储整个character列,请在一个仅逗号分隔的character变量中引用,然后尝试

symbolList <- paste(c("'",paste(data[,2],collapse="','"),"'"),collapse="")

cat是输出函数。 shQuote(来自?shQuote)“引用要传递给操作系统shell的字符串”,我不知道为什么你现在需要它。

编辑: 如果您要将整个character列,所有 double - 分别存储在一个逗号分隔的character变量中,请执行以下操作:

toto <- letters[1:3] # Define a character vector
symbolList <- paste(c("\"",paste(toto,collapse="\",\""),"\""),collapse="")
symbolList
#[1] "\"a\",\"b\",\"c\""
cat(symbolList)
#"a","b","c"

现在,我必须说,根据我的经验,任何功能都不太可能需要这种输入。